如何在Java 8中迭代一年中的每个星期?

bluesky1年前 ⋅ 128 阅读

ChatGPT的回答仅作参考:

在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()`方法找到第一个星期一的日期,并从那里开始迭代每个星期。在每个星期的开始和结束日期之间打印出星期数和日期范围。最后,将当前星期的结束日期加上一天,以便开始下一个星期的迭代。

全部评论: 0

    相关推荐