JAVA中根据输入的年月在控制台输出当月的日历
时间: 2024-09-15 14:14:42 浏览: 75
在Java中,我们可以使用`java.time`包下的`MonthDay`和`Month`类来获取和显示指定月份的日历。以下是一个简单的示例,它将接受用户输入的年份和月份,然后输出该月的日历:
```java
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.time.MonthDay;
import java.util.Scanner;
public class CalendarPrinter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份(1-12):");
int month = scanner.nextInt();
if (month >= 1 && month <= 12) {
MonthDay monthDay = MonthDay.of(month, 1);
Month monthObj = Month.of(year, month);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM");
String calendarStr = monthDay.atStartOfMonth().format(formatter) + "\n" +
"Su Mo Tu We Th Fr Sa\n" +
"- - - - - - - -\n";
for (int i = 1; i <= monthObj.lengthOfMonth(); i++) {
calendarStr += i + " ";
if ((i % 7) == 0) {
calendarStr += "\n";
}
}
System.out.println(calendarStr);
} else {
System.out.println("无效的月份,请输入1-12之间的整数。");
}
scanner.close();
}
}
```
这段代码首先询问用户输入年份和月份,然后创建对应的`MonthDay`对象和`Month`对象。接着使用`DateTimeFormatter`格式化日期,并生成一个月的表格式日历。
请注意,此代码只适用于Gregorian(格里高利)历法,即公历,而不会处理闰年或其他非标准历法。
阅读全文