必須將開始時間和結束時間拆分爲相等的時間間隔。在Java中將時間拆分爲相等的時間間隔
E.g.
開始時間: 10AM, 結束時間: 14PM, 拆分時間:30分鐘
輸出必須是這樣的 -
:::: 輸出 :::
[{time:「10:00」},{time:「10:30」},{time:「11:00」},{time:「11:30」},{時間: 「12:00」},{時間: 「12:30」},{時間:「13:00」},{time:「13:30」},{time:「14:00」}]
謝謝大家。
必須將開始時間和結束時間拆分爲相等的時間間隔。在Java中將時間拆分爲相等的時間間隔
E.g.
開始時間: 10AM, 結束時間: 14PM, 拆分時間:30分鐘
輸出必須是這樣的 -
:::: 輸出 :::
[{time:「10:00」},{time:「10:30」},{time:「11:00」},{time:「11:30」},{時間: 「12:00」},{時間: 「12:30」},{時間:「13:00」},{time:「13:30」},{time:「14:00」}]
謝謝大家。
首先,將小時轉換爲分鐘。
10AM = 10 * 60 minutes
2PM or 14h = 14 * 60 minutes
然後,以分鐘轉換回時間:
minutes/60 gives the number of hours
minutes % 60 gives the number of the minutes in the last hour.
如果你想在2位帶有前導零的,使用總是顯示時/分,並最終墊:
String result = String.format("%02d", minutes/60);
(2
表示要2位和0
表明您用零墊)
儘管如此,也有從10*60
去14*60
與30 minutes
步驟2種方式:
最直觀的:while循環
public static void interval(int begin, int end, int interval) {
int time = begin;
while (time <= end) {
System.out.println(String.format("%02d:%02d", time/60, time % 60));
time += interval;
}
}
但我不喜歡while
循環。如果你做錯了(或者如果輸入數據是錯誤的),它會以無限循環結束。
另一種方式:如你所知的開始,結束及步驟,使用for
循環:
public static void interval2(int begin, int end, int interval) {
for (int time = begin; time <= end; time += interval) {
System.out.println(String.format("%02d:%02d", time/60, time % 60));
}
}
測試:
interval2(10 * 60, 14 * 60, 30);
結果:
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
Arnaud Denoyelle,這就是我一直在尋找的東西。我是Java新手。感謝您的詳細解釋。 – irengba 2015-03-13 09:58:16
你嘗試了什麼? – 2015-03-13 08:48:12
如果剩下一個存根,你會怎麼做?即想象結束時間是晚上14點15分? – Bathsheba 2015-03-13 08:48:12
你覺得for循環怎麼樣?這很難嗎? (for int time = 10 * 60; time <14 * 60; time + = 30){}'。你可以問一個問題,如果你不明白的東西,但你必須嘗試一些並展示它。 – 2015-03-13 08:49:22