繁体   English   中英

上周是java.time.LocalDate吗?

[英]Was a java.time.LocalDate in last week?

我有一个每周统计系统,我想检查统计数据最后一次更新是否是上周。 如果是的话,我想清除它。

目前,日期存储在LocalDate

LocalDate lastUpdate;

我已经有了这样的日常统计数据:

if(lastUpdate.isBefore(LocalDate.now())
{
    clearDailyStatistics();
}

我想做这样的事情:

if(/* something here? */)
{
    clearWeeklyStatistics();
}

所以,问题是: 我如何比较LocalDate对象的周数? 没有必要使用不同的“标准”来形成星期 - 星期一到星期日将被使用(正如Java的DayOfWeek类已经使用的那样)。

请保留您关于Java 8 java.time类,没有Joda-Time或其他外部库的注释和答案。

尝试使用WEEK_OF_WEEK_BASED_YEAR比较一年中的年份和周数:

 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))

将7天或1周添加到您的日期并与当前日期进行比较

if(lastUpdate.plusDays(7).isBefore(LocalDate.now())
{
    clearWeeklyStatistics();
}

要么

if(lastUpdate.plusWeeks(1).isBefore(LocalDate.now()){

  clearWeeklyStatistics();

  }

编辑: - 仅当您想要比较7天的周期交叉时才考虑此解决方案。有关详细信息,请参阅注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM