簡體   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