0
我想干什么?
我想根据用户的输入返回时间和显示。说,用户进入控制台starthour: 23
startminute: 45
duration (in min): 30
那么开始时间段将为PM
offcourse,你可以看到下面我基于上述事情计算开始时间,但问题是计算endtime。例如,在上述开始时间中,结束时间应该变为00:15
,时间段为AM
,而不是PM
,例如开始时间。JAVA时间转换公式
我做了什么?
public String toString(){
int h = (getHour()==0 || getHour()==12) ? getHour() : getHour()%12;
String period = (getHour()<12)? "AM" : "PM";
return String.format("%02d:%02d %s", h, getMinute(), period);
}
怎么办?
上述公式正确计算开始时间及其周期,但我需要一个类似的公式,可以根据用户输入的开始时间,开始分钟和持续时间正确计算endhour。
基本上,上面提到的代码需要被操纵来找出endhour,endminute和它的周期。
注意:请不要告诉本地时间用于获取结束时间和期限。三江源
编辑:这就是我现在做的事:
public String toString(){
int endh = (getEndHour()==0 || getEndHour()==12) ? getEndHour() : getEndHour()%12;
String period = ((getEndHour() + duration) <12)? "AM" : "PM";
return String.format("%02d:%02d %s", endh, getEndHour(), period);
}
就像你使用getHour()%12到24小时的时间以上午或下午,你可以使用模60,如果加入后的分钟大于60转换得到结束的分钟。如果添加后的小时数大于24,则可以使用模24来获得第二天的小时数(这显然必须在24小时到AM/PM转换之前完成) –
@DavidChoweller,听起来不错。如果你的代码有效,我可以接受你的答案。谢谢 – Harry
@DavidChoweller,我试过你刚刚说的,但是我不能这么做,如果你不介意的话,请你详细说明一下。代码是什么意思?谢谢 – Harry