在Java 8中,可以使用`LocalDate`类和`TemporalAdjusters`类来迭代一年中的每个星期。以下是一个示例代码: ```java import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; public class IterateWeeksInYear { public static void main(String[] args) { int year = 2021; LocalDate firstDayOfYear = LocalDate.of(year, 1, 1); LocalDate lastDayOfYear = LocalDate.of(year, 12, 31); LocalDate firstMonday = firstDayOfYear.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY)); LocalDate currentMonday = firstMonday; while (currentMonday.isBefore(lastDayOfYear)) { LocalDate sunday = currentMonday.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); System.out.println("Week " + currentMonday.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR) + ": " + currentMonday + " - " + sunday); currentMonday = sunday.plusDays(1); } } } ``` 在上面的代码中,首先定义了一年的第一天和最后一天。然后,使用`TemporalAdjusters.nextOrSame()`方法找到第一个星期一的日期,并从那里开始迭代每个星期。在每个星期的开始和结束日期之间打印出星期数和日期范围。最后,将当前星期的结束日期加上一天,以便开始下一个星期的迭代。