2014-01-29 117 views
-1

我想實現一個方法來執行定期更新如何執行每日每月每年的數據來更新

public void periodicUpdate(int frequence){ 
     //frequence 1 daily, 2 monthly, 3 yearly 
     switch(frequence){ 
      case 1: 
       if(aDayIsExpired()){ 
        update(); 
       } 
       break; 

      case 2: 
       if(aMontyhIsExpired()){ 
        update(); 
       } 
       break; 
      ... 

     } 

     default: 
     if(aYearIsExpired()){ 
      update(); 
     } 
     break; 
     ... 

    } 

但我不知道我怎麼能,一個月一個計數天年份到期。 我需要這樣的東西

GregorianCalendar startDate = new GregorianCalendar(); 

存儲,每次應用程序啓動我應該做一個比較 - 與

GregorianCalendar now = new GregorianCalendar(); 

不幸的是,我不知道如何比較nowstartDate,以滿足我的問題,如果這是正確的方法。

回答

0

取決於你對「一年過去」的定義是什麼。這可能是365天,可能是你有相同的價值日/月字段,只有在年份字段+1。

如果我們假定每年爲365天,你可以使用

if((now.getTimeInMillis() - startDate.getTimeInMillis()) > 31556952000) 
    return true; 

爲貴「aYearHasPassed」的方法,31556952000是365天毫秒的量。

只要一個方法來剝皮貓,可能不符合您的確切要求。

0

在SharedPreferences中存儲日期。當應用程序啓動時,加載日期並與當前日期進行比較。

您可以通過調用getTime()並進行數學運算,從曆元中獲取毫秒數來比較兩個日曆。或者,你可以創建一個保存的日曆對象的克隆,滾動()它所需的時間量(7天,一個月等),並使用Calendar.compareTo比較它們(保存的日曆)

相關問題