package com.yuanchu.mom; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.TemporalAdjusters; import java.time.temporal.WeekFields; import java.util.Locale; @SpringBootTest class SystemRunApplicationTest { @Test void contextLoads() { // 获取当前日期 LocalDate today = LocalDate.now(); // 获取本月的第一天和最后一天 LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 获取周字段信息(根据区域设置) WeekFields weekFields = WeekFields.of(Locale.getDefault()); // 获取本月第一天的周一 LocalDate startOfWeek = firstDayOfMonth.with(TemporalAdjusters.previousOrSame(weekFields.getFirstDayOfWeek())); // 遍历本月所有天数,找出每周的第一天和最后一天 LocalDate endOfWeek; while (startOfWeek.isBefore(firstDayOfMonth.plusMonths(1))) { endOfWeek = startOfWeek.plusDays(6); LocalDateTime startDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIDNIGHT); LocalDateTime endDateTime = LocalDateTime.of(endOfWeek, LocalTime.MIDNIGHT); System.out.println("Week starts on " + startDateTime + " and ends on " + endDateTime); startOfWeek = startOfWeek.plusWeeks(1); } } }