使用 java.time 查找一年最后一周的第一天

Oxo*_*otl 5 java date java-time

我需要使用 Java 8 日期和时间 API ( java.time )找到一年最后一周的第一天,最后得出了这个解决方案:

LocalDate date = LocalDate.of(2016, 2, 17);
LocalDate lastWeekOfYear = LocalDate.of(date.getYear() + 1, 1, 7)
    .with(WeekFields.ISO.weekOfYear(), 1)
    .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).minusDays(7);
Run Code Online (Sandbox Code Playgroud)

此解决方案查找下一年的第一周,必要时将星期几调整为星期一,然后将 7 天后移。有没有更聪明的方法来达到同样的结果?

Oxo*_*otl 5

正如建议的那样,我将自己回答这个问题(从评论中略有改进),因为似乎没有更简单的解决方案。

LocalDate date = LocalDate.of(2016, 2, 17);
LocalDate lastWeekOfYear = LocalDate.of(date.getYear() + 1, 1, 7)
    .with(WeekFields.ISO.weekOfWeekBasedYear(), 1)
    .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).minusWeeks(1);
Run Code Online (Sandbox Code Playgroud)