import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class week {
public static void main(String[] args) {
LocalDate customDate = LocalDate.of(2023, 9, 1); // 自定义日期
LocalDate date = customDate; // 当前日期
// 如果当前月的1号不是周一,则计算当前周的范围
if (date.getDayOfWeek() != DayOfWeek.MONDAY) {
LocalDate endOfWeek = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
// 如果结束日期超过当前月份,则将其调整为当前月份的最后一天
if (endOfWeek.getMonthValue() > date.getMonthValue()) {
endOfWeek = date.with(TemporalAdjusters.lastDayOfMonth());
}
System.out.println("Week " + date + " to " + endOfWeek);
date = endOfWeek.plusDays(1); // 更新日期为下一周的起始日期
}
// 循环计算剩余周的范围
while (date.getMonthValue() == customDate.getMonthValue()) {
LocalDate startOfWeek = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
LocalDate endOfWeek = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
// 如果结束日期超过当前月份,则将其调整为当前月份的最后一天并中断循环
if (endOfWeek.getMonthValue() > customDate.getMonthValue()) {
endOfWeek = customDate.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("Week " + startOfWeek + " to " + endOfWeek);
break;
}
System.out.println("Week " + startOfWeek + " to " + endOfWeek);
date = endOfWeek.plusDays(1);
}
}
}