我看过很多关于日期和比较的帖子,但我正在寻找一些特别的东西。
基本上,当应用程序的这一部分打开时,我希望它保存具有共享首选项的日期。 (所以最好是长的,字符串或可以保存的那种东西)。自打开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
}
只需要知道是否已经过了大量的时间。我希望我没有让它太混乱。感谢任何帮助。
答案 0 :(得分:1)
将其作为长值保存在共享优先级中,并始终将其与新测量的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以来的时间。 别忘了考虑时区:)。
我希望这会对你有所帮助。