比较日期的最简单方法

时间:2011-10-13 21:50:20

标签: android

我看过很多关于日期和比较的帖子,但我正在寻找一些特别的东西。

基本上,当应用程序的这一部分打开时,我希望它保存具有共享首选项的日期。 (所以最好是长的,字符串或可以保存的那种东西)。自打开4天后,应该进行图形更改。 (它不再使用前4天的图形),它将再次执行此操作2次。那么将保存的日期/时间与当前比较以确定是否已过去4天的最佳方法是什么

最好我想以某种形式使用这样的东西

if(savedDate < 4Days){
//One image will be displayed during these 4 days
}
else if(savedDate <= 8Days){
//Another images shows for these 4 days
}

只需要知道是否已经过了大量的时间。我希望我没有让它太混乱。感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

使用System.currentTimeMillis

将其作为长值保存在共享优先级中,并始终将其与新测量的currentTimeMillis进行比较,直到差异为&gt; 4 * 24 * 60 * 60 * 1000

答案 1 :(得分:1)

也许是这样的:

Calendar now = Calendar.getInstance();
// Go back 4 days.
now.add(Calendar.DATE, -4);
Date fourDaysAgo = now.getTime();

if (savedDate.after(fourDaysAgo))
{
   // Show first image
}
else
{
    //Show second image.
}

如果你不想在8天之后显示第二张图片,那么你需要添加另一个条件,但我认为这应该会让你走上正确的路线。

答案 2 :(得分:1)

您可以使用System.currentTimeMillis()http://developer.android.com/reference/android/os/SystemClock.html以毫秒为单位保存当前时间。

long currentTimeMillis = System.currentTimeMillis();
long oneDayMillis = 24 * 3600 * 1000;

if((currentTimeMillis - savedTimeMillis) < (4 * oneDayMillis)){
  //One image will be displayed during these 4 days
}
else if((currentTimeMillis - savedTimeMillis) < (8 * oneDayMillis)){
 //Another images shows for these 4 days
}else{
 // do...
}

java.util.date中的基本日期操作,例如等于,之后和之前的一个长,表示自1970-01-01 00:00:00以来的时间。 别忘了考虑时区:)。

我希望这会对你有所帮助。