2013-08-22 96 views
-2

我需要編寫一個方法,每24小時只能執行一次。它抓取一個名爲「lastCollection」的字符串,然後將其解析爲某種時間對象。然後它應該獲得當前時間,並檢查它是否與「lastcollection」有24小時的差異。如果是這樣,它應該執行一些代碼,並將lastCollection設置爲新的可讀時間字符串。什麼是最好的方式去做這件事?檢查是否24小時

+2

抓住筆和紙,然後獲得編碼! – rocketboy

+0

使用系統時間可以嗎?如果是這樣,請使用它。 – keyser

+0

'日曆'是你的朋友。大多數日期操作已被棄用(很難確定它們是否會很快被刪除),但「日曆」類提供了許多有趣的方法來處理日期。此外,要在'字符串'和'日期'之間工作,請使用單一日期格式。 – Gamb

回答

1

這是通過某些東西來調用還是需要每24小時運行一次?

如果可能,你可以睡覺。我需要一個代碼示例來向你展示如何適應它。

在一天一次的情況下在附表
獲取方法開始時的時間。
執行方法
獲得新的時間開始時間
獲取差異和當前時間
休眠狀態的時間,直到第二天的同一時間開始剩餘。

OR

需要在執行
的方法開始獲取時間保存到變量
每次調用此方法之前檢查簽入值的差說紀要(見下文)
如果它大於24,則重複該方法

日期差異可以這樣完成:

Date lasttimeran = null; 
Date now = null; 
long diff = now.getTime() - lasttimeran.getTime(); 
long diffMinutes = diff/(60 * 1000); 
//If block to check if it has been long enough >= ensures a diff of exactly 24 hours will still trigger the method to be ran 
if (diffMinutes >= 1440) { 
//Do Something 
} 
else{ 
//Do Nothing 
} 
+0

這是一種方法,由其他東西調用:) 感謝您的幫助 – arxenix

+0

然後,你會想要做一個日期檢查對上一次運行和當前時間,我在示例2 menton你可以編輯你的問題以及。如果你包含代碼並提及更多人願意參與的小事情,祝你好運! – sealz

+0

好的,我認爲我的工作。謝謝!另外,我是這個網站的新手 – arxenix

0
Calendar expCal = Calendar.getInstance(); 
    while (true) { 
    expCal.add(Calendar.HOUR, 24); 
    Date expirationDate = expCal.getTime(); 
    Date currentDate = new Date(); 
    if (currentDate.compareTo(expirationDate) == 0) 
      //Do your Work here 
      expCal = Calendar.getInstance(); 

    } 
相關問題