如何在Java程序中实现一个功能,用于打印指定月份的日历?如果用户输入的月份值大于12或小于1,程序应该弹出错误提示并要求用户重新输入正确的月份?
时间: 2024-10-21 16:02:53 浏览: 22
在Java中,你可以使用java.time包下的Calendar类或者JDK 8及以上版本的java.time.LocalDate和java.time.format.DateTimeFormatter类来实现这个功能。这里是一个简单的示例:
```java
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month;
while (true) {
System.out.println("请输入月份(1-12):");
month = scanner.nextInt();
if (month >= 1 && month <= 12) {
break; // 输入有效,跳出循环
} else {
System.out.println("错误! 月份必须在1到12之间,请重新输入:");
}
}
LocalDate date = LocalDate.of(2023, month, 1); // 使用当前年份和给定月份数
String calendarString = date.format(DateTimeFormatter.ofPattern("yyyy-MM", TextStyle.FULL_MONTH));
System.out.println("指定月份的日历: " + calendarString);
scanner.close();
}
}
```
在这个例子中,首先获取用户的输入并检查是否在合法范围内,然后创建一个LocalDate对象,最后使用DateTimeFormatter将其格式化为包含日历信息的字符串。
阅读全文