TemporalAdjustersのnext(DayOfWeek dayOfWeek)
メソッドが返すTemporalAdjusterのインスタンスを使ってLocalDate
の日付を次のx曜日の日付に変更できます。
サンプルコード
LocalDate d = LocalDate.of(2019, 3, 25).with(TemporalAdjusters.next(DayOfWeek.MONDAY));
LocalDate d2 = LocalDate.of(2019, 3, 29).with(TemporalAdjusters.next(DayOfWeek.valueOf("MONDAY")));
LocalDate d3 = LocalDate.of(2019, 3, 31).with(TemporalAdjusters.next(DayOfWeek.of(1)));
System.out.println(d.toString());
System.out.println(d2.toString());
System.out.println(d3.toString());
出力
2019-04-01
2019-04-01
2019-04-01
LocalDateの日付がすでにその曜日の場合、翌週の日付に設定されます。
nextOrSame(DayOfWeek dayOfWeek)
を使用すると、LocalDateがすでにその曜日である場合何もしません。
サンプル
LocalDate d = LocalDate.of(2019, 3, 25).with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY));
LocalDate d2 = LocalDate.of(2019, 3, 29).with(TemporalAdjusters.nextOrSame(DayOfWeek.valueOf("MONDAY")));
LocalDate d3 = LocalDate.of(2019, 3, 31).with(TemporalAdjusters.nextOrSame(DayOfWeek.of(1)));
出力
2019-03-25
2019-04-01
2019-04-01