在我的應用程序中,我必須比較存儲在整數變量中的兩個時間值。這裏的所有值都是24小時格式。我用這個代碼生成值:保存並比較整數的時間
Calendar c = Calendar.getInstance();
int startTime = startHour * 60 + startMin;
int endTime = endHour * 60 + endMin;
int now = c.get(Calendar.HOUR_OF_DAY) * 60 + c.get(Calendar.MINUTE);
現在我要檢查,如果currentTime
是startTime
和endTime
之間。當然,我也有這個情況檢查:
if(startTime <= now && endTime >= now)
// between...
這一工程在大多數情況下,偉大的,但如果startTime
比的原因這是行不通的endTime
更大。我們以這個例子爲例:現在是02:00點
int startTime = 1395; // 23:15
int endTime = 270; // 04:30
int now = 120; // 02:00
現在if條件不起作用。任何想法如何我可以解決這個問題?我必須將值保存在整數變量中,而不是日曆或日期對象或其他東西。
順便說一句,我認爲這個想法(而不是我自己的)以這種方式存儲時間只有整數很好。它使用更少的內存,並且使用modulo
和divider
運營商,可以輕鬆獲得真實的小時和分鐘。
你是對的謝謝你!我花這麼多時間在這個問題上,我忘記檢查'startTime> endTime'。這當然很重要。謝謝! – Cilenco
沒問題,這是一件很好的事情要解決,我同意這是一個很酷的處理時間的方式! – SharkofMirkwood