所以我想做一些監測,我希望它每隔五分鐘,所以例如,如果應用程序在1:47開始監測一切,直到1:50,然後重置。我現在有這個工作小時,但我需要把它減少到每隔五分鐘,我有一點點麻煩來計算數學。毫秒,直到下一個第5秒
我得到的所有的當前時間信息
Calendar currentCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
long currentTimeInMillis = currentCalendar.getTimeInMillis();
int hr = currentCalendar.get(Calendar.HOUR_OF_DAY);
int min = currentCalendar.get(Calendar.MINUTE);
int sec = currentCalendar.get(Calendar.SECOND);
int millis = currentCalendar.get(Calendar.MILLISECOND);
現在我需要找到下一個五分鐘,爲小時我有這個其中工程。
millisUntilNextHour = currentTimeInMillis + ((60L - min) * SECONDS_IN_MINUTE * 1000L) + ((60 - sec) * 1000L) + (1000L - millis);
任何人都可以想到類似於上面的方法來獲得毫秒到最接近的第五分鐘嗎?
我選擇這個作爲正確的答案,因爲它與我的其他代碼一起最好,也是最快的。我不必重新創建任何對象,但如果需要重新使用Calendar實例,則必須重新創建對象。謝謝大家。 – Ryan
@Ryan:請檢查我的數學並測試它。我寫得很快,所以很可能是粗心的錯誤。但一般的方法是正確的。 – tskuzzy
是的,我在回答之前測試過它,像魅力一樣。我只需要在應用程序啓動時進行第一次傳遞,之後我會有一個計時器每隔300,000毫秒啓動一次更新。 – Ryan