我有一个每周统计系统,我想检查统计数据最后一次更新是否是上周。如果是的话,我想清除它。
目前,日期存储在LocalDate
:
LocalDate lastUpdate;
我的每日统计数据已经像这样工作:
if(lastUpdate.isBefore(LocalDate.now())
{
clearDailyStatistics();
}
我想做这样的事情:
if(/* something here? */)
{
clearWeeklyStatistics();
}
所以,问题是:如何比较LocalDate
个对象的周数?不需要不同的"标准"周的形成方式 - 周一到周日将被使用(已经被Java DayOfWeek
类使用)。
答案 0 :(得分:6)
LocalDate now = LocalDate.now();
if(lastUpdate.get(IsoFields.WEEK_BASED_YEAR) != now.get(IsoFields.WEEK_BASED_YEAR)
|| lastUpdate.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR) !=
now.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR))
答案 1 :(得分:0)
将7天或1周添加到您的日期并与当前日期进行比较
if(lastUpdate.plusDays(7).isBefore(LocalDate.now())
{
clearWeeklyStatistics();
}
OR
if(lastUpdate.plusWeeks(1).isBefore(LocalDate.now()){
clearWeeklyStatistics();
}
编辑: - 只有在您希望比较7天的周期交叉时才考虑此解决方案,请参阅注释以获取更多详细信息。