java 根据传入的年份字符串,获取截至当前的年月的List
时间: 2024-01-25 17:03:49 浏览: 100
java获取年月日
5星 · 资源好评率100%
好的,针对您的问题,我可以给您提供以下Java代码实现:
```java
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class YearMonthList {
public static List<YearMonth> getYearMonthList(String yearString) {
List<YearMonth> yearMonthList = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
YearMonth currentYearMonth = YearMonth.now();
int currentYear = currentYearMonth.getYear();
int currentMonth = currentYearMonth.getMonthValue();
int year = Integer.parseInt(yearString);
for (int i = year; i <= currentYear; i++) {
int startMonth = (i == year) ? 1 : currentMonth;
for (int j = startMonth; j <= 12; j++) {
YearMonth yearMonth = YearMonth.of(i, j);
yearMonthList.add(yearMonth);
}
}
return yearMonthList;
}
public static void main(String[] args) {
String yearString = "2018";
List<YearMonth> yearMonthList = getYearMonthList(yearString);
for (YearMonth yearMonth : yearMonthList) {
System.out.println(yearMonth);
}
}
}
```
这段代码实现了根据传入的年份字符串,获取截至当前的年月的List。具体实现过程如下:
1. 首先定义一个`getYearMonthList`方法,该方法接收一个年份字符串作为参数,并返回一个`List<YearMonth>`类型的列表;
2. 创建一个`DateTimeFormatter`对象,用于将年份字符串转换为整数类型;
3. 获取当前年月,以及将传入的年份字符串转换为整数类型;
4. 根据当前年份和传入的年份,循环遍历每一年,计算每一年的起始月份和结束月份,并将每一年的所有月份添加到`yearMonthList`中;
5. 最后返回`yearMonthList`列表。
在`main`方法中,我们可以测试`getYearMonthList`方法,输出结果为从2018年1月到当前年月的所有年月。
阅读全文