根绝字符串年份 例如"2024" 查询2024年所有月份, 排除未来月份
时间: 2024-12-19 08:24:55 浏览: 4
如果你想要获取给定年份(如 "2024")的所有月份,但排除未来的月份(假设当前日期为过去某个已知的时间点),你可以使用Java的Calendar类或者LocalDate类来实现这个功能。这里有一个简单的示例:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class MonthFinder {
public static void main(String[] args) {
String targetYear = "2024";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
LocalDate currentDate = LocalDate.now(); // 获取当前日期
int currentYear = currentDate.getYear();
if (currentYear > Integer.parseInt(targetYear)) { // 如果目标年份小于当前年份,直接返回空列表,因为不存在未来的月份
List<String> months = new ArrayList<>();
} else {
LocalDate startDate = LocalDate.of(Integer.parseInt(targetYear), 1, 1); // 新的一年的第一天
LocalDate endDate = LocalDate.of(Integer.parseInt(targetYear), 12, 31); // 年度的最后一天
while (!startDate.isAfter(endDate)) { // 遍历该年内的每个月
List<String> monthsInYear = new ArrayList<>();
for (int i = 1; i <= 12; i++) {
String monthName = startDate.getMonthValue() < 10 ? "0" + startDate.getMonthValue() : "" + startDate.getMonthValue();
monthsInYear.add(monthName);
startDate = startDate.plusMonths(1);
}
months.addAll(monthsInYear);
}
}
// 此时months变量包含了指定年份的全部月份,但没有未来的月份
System.out.println(months);
}
}
```
这段代码首先确定了目标年份是否在未来,如果是,则直接创建一个空列表。如果不是,它计算出目标年份的开始和结束日期,并遍历每个月份添加到结果列表。
注意,这个代码基于当前时间判断“未来”,如果需要固定某个特定时间作为判断基准,只需替换`LocalDate.now()`即可。
阅读全文