java从今天往之前推半年,遍历每个周的第一天和最后一天,直到当前这个月,Java代码
时间: 2024-09-09 17:07:35 浏览: 39
使用Java创建简单的日历应用程序 - 一个实战教程
在Java中,你可以使用`java.time`包提供的类来实现这个需求。这里是一个示例代码片段,它从今天的日期开始,回溯半年,然后遍历每周的第一天和最后一天:
```java
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.List;
public class WeekDateTraversal {
public static void main(String[] args) {
LocalDate today = LocalDate.now(); // 获取当前日期
int halfAYearsAgo = today.minusMonths(6); // 翻到六个月前
List<LocalDate> weeklyDates = new ArrayList<>();
while (halfAYearsAgo.isBefore(today)) { // 只处理过去的六个月
LocalDate startOfWeek = halfAYearsAgo.with(TemporalAdjusters.firstDayOfWeek()); // 每周的第一天
LocalDate endOfWeek = startOfWeek.plusWeeks(1).minusDays(1); // 每周的最后一天
weeklyDates.add(startOfWeek);
weeklyDates.add(endOfWeek);
halfAYearsAgo = halfAYearsAgo.plusWeeks(1); // 进入下一周
}
// 输出每周第一天和最后一天
for (LocalDate date : weeklyDates) {
System.out.println("Start of week: " + date + ", End of week: " + date.plusWeeks(1).minusDays(1));
}
}
}
```
这段代码首先获取当前日期,并计算出六个月前的日期。然后在一个循环中,每次找到上周的第一天和最后一日,并添加到列表中。循环直到六个月内所有周都被处理。
阅读全文