java 根据字符串"2023"年份 查询2023年所有年月 如果当前时间是在2023-10月, 那么排除11月和12月
时间: 2024-12-19 07:25:27 浏览: 5
在Java中,你可以使用`java.time`包提供的日期和时间API来进行这样的操作。首先,你需要创建一个`LocalDateTime`实例表示指定的年份和月份,然后检查当前时间是否在这个范围之外。以下是实现这个功能的一个示例:
```java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String yearStr = "2023";
int currentMonth = LocalDate.now().getMonthValue(); // 获取当前月份
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
int targetYear = LocalDateTime.parse(yearStr, formatter).getYear();
LocalDate startDate = LocalDate.of(targetYear, 1, 1); // 新年的第一天
LocalDate endDate = LocalDate.of(targetYear + 1, 1, 1).minusMonths(1); // 下一年的第一天减一月
if (currentMonth >= 11 || currentMonth <= 1) { // 判断是否需要排除11月和12月
System.out.println("Excluding November and December in " + yearStr);
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusMonths(1)) {
System.out.println(date.getMonthValue() + "/" + date.getDayOfMonth());
}
} else {
System.out.println("Checking months from January to October of " + yearStr);
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusMonths(1)) {
System.out.println(date.getMonthValue() + "/" + date.getDayOfMonth());
}
}
}
}
```
这段代码会打印出给定年份内除了11月和12月的所有月份。如果当前月份不在11月和12月之间,它会显示这两个月份。
阅读全文