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