java 输入年份和月份,输出该月的月历并且输入年份,循环输出该年12个月的月历
时间: 2024-12-18 18:35:23 浏览: 5
java编写的日历类程序,输入年份和月份,打印出该月的日历
5星 · 资源好评率100%
在Java中,你可以创建一个类来实现这个功能,使用`java.util.Calendar`类来生成并显示特定年份的月历。这里有一个基本的示例:
```java
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class MonthlyCalendar {
public static void main(String[] args) {
int inputYear = 2023; // 输入年份
for (int month = 1; month <= 12; month++) { // 遍历一年的12个月
Calendar calendar = Calendar.getInstance();
calendar.set(inputYear, month - 1, 1); // 设置年、月、日(注意月份从0开始)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月");
String formattedMonth = sdf.format(calendar.getTime()); // 格式化月份
System.out.println("月份:" + formattedMonth);
printMonthCalendar(calendar); // 打印月历
System.out.println("------------------------"); // 每个月之间添加分隔线
}
}
private static void printMonthCalendar(Calendar calendar) {
System.out.println("星期一 星期二 星期三 星期四 星期五 星期六 星期日");
// 打印每个工作日(周一到周日)
for (int day = 1; day <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); day++) {
calendar.set(Calendar.DAY_OF_MONTH, day);
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
if (weekday >= Calendar.MONDAY && weekday <= Calendar.SATURDAY) {
System.out.printf("%2d ", day);
} else {
System.out.print("- "); // 非工作日用短横线表示
}
}
System.out.println(); // 换行
}
}
```
这个程序首先获取用户输入的年份,然后逐月循环,对每个月生成一个日历并打印。`printMonthCalendar`方法负责打印详细的每日日程。
阅读全文