如何每月执行每月数据更新

时间:2014-01-29 00:14:07

标签: android gregorian-calendar android-date

我想实现一种执行定期更新的方法

  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来解决我的问题,如果这是正确的方法。

2 个答案:

答案 0 :(得分:0)

取决于您对“一年过去”的定义是什么。它可能是365天,可能是您拥有相同值的日/月字段,而年度字段中只有+1。

如果我们假设一年365天,您可以使用

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

表示“aYearHasPassed”方法,31556952000是365天内的毫秒数。

只有一种方法可以给猫皮肤,可能不符合你的确切要求。

答案 1 :(得分:0)

将日期存储在SharedPreferences中。应用程序启动时,加载日期并与当前日期进行比较。

您可以通过调用getTime()并进行数学运算来获取纪元的毫秒数来比较两个日历。或者,您可以创建已保存日历对象的克隆,按所需的时间(7天,一个月等)向前滚动(),并使用Calendar.compareTo(已保存的日历)比较它们