以HH:MM格式打印时间
我正在编写一个Java程序,我需要将小时和分钟增加1,并以HH:MM格式输出当前时间。如果小时为23,则应该回到0或者分钟是59,分钟应该为0,小时应该到下一小时。这是我到目前为止,但我不完全确定它是正确的。我也不确定这是否是使时间以小时和分钟之间出现的正确方式。这里是我的代码:以HH:MM格式打印时间
//TimeOfDay program public class TimeOfDay
{
private int hour;
private int minute;
/**
* Constructor for objects of class TimeOfDay
*/
public TimeOfDay(int h, int m)
{
setHr(h);
setMin(m);
String time = "17:46";
String [] values = time.split(":");
}
public TimeOfDay()
{
}
/**
- set the hour using an input parameter h
- set the minute using an input parameter m
- add one hour (increase hour by 1)
- add one minute (increase minute by 1)
- output the current time in HH:MM format
(single digit hour or minute must have a leading 0, e.g. 04:09)
*/
public void setHr (int h)
{
if (0 <= h && h < 23)
hour = h;
else
hour = 0;
}
public void setMin (int m)
{
if (0 <= m && m < 59)
minute = m;
else
minute = 0;
}
public void addHour()
{
hour++;
if (hour > 23)
hour = 0;
}
public void addMinute()
{
minute++;
if (minute > 59)
{
minute = 0;
addHour(); //increment hour
}
}
public int printCurrentTime()
{
if (hour < 10)
System.out.print("0" + hour + ":");
if (minute < 10)
System.out.print("0" + minute);
return time.split;
}
}
回答:
我会改变printCurrentTime()
public int printCurrentTime() { System.out.printf("%02d:%02d%n", hour, minute);
return hour * 60 + minute;
}
的代码的其余部分似乎OK
回答:
您可以使用内置的java.util
Calendar
类来实现这一点。通过add(field, value)
,您可以增加小时数,而日历会保留日期分隔。
要获得HH:MM格式,您可以使用SimpleDateFormat
,格式为“HH:mm”。
Calendar c = Calendar.getInstance(); //automatically set to current time c.add(Calendar.HOUR, 1);
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
System.out.println(dateFormat.format(c.getTime()));
回答:
已经有图书馆做的工作类型为你如Calender
和JodaTime。后者使这类工作特别容易。单一类LocalTime可以管理添加和格式化:
LocalTime localTime = new LocalTime("17:46"); LocalTime newTime = localTime.plusHours(1).plusMinutes(1);
System.out.println(newTime.toString("HH:mm"));
回答:
这显然是家庭作业,所以我不会打扰推荐一个库,会为你做到这一点。
您的代码看起来不错,但您的printCurrentTime()方法除外,这是没有意义的。
所有这种方法应该做的是从小时和分钟建立一个字符串。
它应该是这个简单:
public void printCurrentTime() { System.out.println(hour + ":" + minute);
}
或者,如果你希望它返回一个字符串(可以在别处打印),它是这样的:
public String toString() { return hour + ":" + minute;
}
这是没有意义让该方法返回一个int。如果您想打印它应该返回void
。
它应该返回String
如果你想它返回....一个字符串。
我刚刚通过您的代码中的评论...其中提到不包括在您的问题中的要求。
由于您需要填充小时和分钟(当它们小于10时),因此您需要添加更多逻辑。
我会亲自使用String.format()垫你的号码...
但是....因为这是家庭作业,你可能不应该。
我将创建两个简单的方法:
getHourString()
getMinuteString()
双方应返回字符串。
每种方法内部的逻辑将非常简单。如下所示:
private String getHourString() { String h = "";
if (hour < 10) {
h = "0";
}
return h + hour;
}
您可以对getMinuteString()
做同样的事情。
您的printCurrentTime()
方法可以将这些方法的输出结合起来(中间有一个:
)。
换句话说:
public void printCurrentTime() { String s = getHourString() + ":" + getMinuteString();
System.out.println(s);
}
以上是 以HH:MM格式打印时间 的全部内容, 来源链接: utcz.com/qa/263345.html