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 天后移。有没有更聪明的方法来达到同样的结果?
正如建议的那样,我将自己回答这个问题(从评论中略有改进),因为似乎没有更简单的解决方案。
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)