4

週次統計システムを使用しており、統計が最後に更新されたのが先週かどうかを確認したいと考えています。だったらクリアしたい。

現時点では、日付は次のように格納されていLocalDateます。

LocalDate lastUpdate;

私はすでに次のように機能する毎日の統計を持っています:

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

そして、私はこのようなことをしたいと思います:

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

問題は、オブジェクトの週数を比較するにはどうすればよいかということです。LocalDate週がどのように形成されるかについて、異なる「標準」は必要ありません。月曜日から日曜日が使用されます (Java のDayOfWeekクラスで既に使用されているように)。

コメントと回答は Java 8 のjava.timeクラスについてのみにしてください。Joda -Timeやその他の外部ライブラリは含めないでください。

4

2 に答える 2

6

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))
于 2014-06-17T09:29:44.163 に答える
0

日付に 7 日または 1 週間を追加して、現在の日付と比較します

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

また

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

  clearWeeklyStatistics();

  }

編集:- このソリューションは、週の交差を 7 日間の期間で比較したい場合にのみ検討してください。詳細については、コメントを参照してください。

于 2014-06-17T09:28:14.200 に答える