Android中计算时间差的实现方法

今天为“至简天气”增加了一项功能:在启动时根据上次更新数据的时间判断是否有必要更新数据,因为 weather.com.cn 的实况数据貌似是25分钟才会刷新一次,只有在据上次更新的时间达25分钟以上才会自动更新数据,计算时间差的方法如下:

private boolean isNeedToRefresh(){

//获取当前时间

Date curDate = new Date(System.currentTimeMillis());

//getLastRefreshTime() 从xml文件中读取上次更新数据的时间(long)

long lastRefreshTime=getLastRefreshTime();

long diff=curDate.getTime()-lastRefreshTime;

//getTime() 得到的是以毫秒为单位的long数据

//除以1000*60转化为以分钟为单位

diff=diff/(1000*60);

return diff>=25;//如果间隔大于等于25分钟则自动刷新

}
我在做计算的时候只需要用到分钟单位,因此只是对时间除以1000*60,同理也可以对diff处理转化为小时、天单位的数据。 getLastRefreshTime() 的实现如下:

private long getLastRefreshTime(){

String spName = getPackageName() + "_preferences";

SharedPreferences sp = getSharedPreferences(spName, MODE_PRIVATE);/*

return Long.parseLong(sp.getString("LAST_REFRESH_TIME_LONG","1414053790410"));*/

return sp.getLong("LAST_REFRESH_TIME_LONG",1414053790410L);

}
另外,我还在更新数据成功之后执行 updateRefreshTime() 来更新保存于xml中的时间数据,在此不再赘述。


你可能感兴趣的:(Android)