JAVA输入两个日期,获取每个自然月的起止日期
时间: 2024-10-08 22:13:14 浏览: 16
在Java中,为了获取两个日期之间每个月份的起始和结束日期,你可以使用`java.time`包下的`MonthDay`和`LocalDate`类。首先,你需要创建一个方法,接受开始日期、结束日期作为参数:
```java
import java.time.LocalDate;
import java.time.MonthDay;
import java.util.ArrayList;
import java.util.List;
public class MonthRangeCalculator {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2023, 1, 1); // 示例开始日期
LocalDate endDate = LocalDate.of(2024, 1, 1); // 示例结束日期
List<LocalDate> monthsInRange = getMonthlyDates(startDate, endDate);
for (LocalDate date : monthsInRange) {
System.out.printf("月份:%s, 起始日期:%s, 结束日期:%s%n",
date.getMonth(), date.atStartOfMonth(), date.plusMonths(1).minusDays(1));
}
}
public static List<LocalDate> getMonthlyDates(LocalDate startDate, LocalDate endDate) {
List<LocalDate> monthlyDates = new ArrayList<>();
while (!startDate.isAfter(endDate)) {
monthlyDates.add(startDate);
startDate = startDate.plusMonths(1);
}
return monthlyDates;
}
}
```
这个程序会计算给定范围内每个月的1日(即开始日期)和最后一天(下个月的第一天减去一天),并将其存储在一个列表中。