以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.utilCalendar类来实现这一点。通过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()垫你的号码...

但是....因为这是家庭作业,你可能不应该。

我将创建两个简单的方法:

  1. getHourString()
  2. 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

回到顶部