用java编写日历代码
javaimport java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
int year = 2024;
int month = 2; // 2代表三月
// 创建 Calendar 对象
Calendar calendar = Calendar.getInstance();
// 设置年份和月份
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1); // 月份是从 0 开始的,所以减去 1
// 获取当月的天数
int numDaysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
// 设置为该月第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 获取该月第一天是星期几
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 打印日历头部
System.out.println(" 日 一 二 三 四 五 六");
// 打印月份前的空格
for (int i = 1; i < firstDayOfWeek; i++) {
System.out.print(" ");
}
// 打印日期
for (int i = 1; i <= numDaysInMonth; i++) {
System.out.printf("%3d", i);
if ((firstDayOfWeek + i - 1) % 7 == 0) {
System.out.println();
} else {
System.out.print(" ");
}
}
}
}
这个程序会生成指定年份和月份的日历,并以星期日作为每周的开始。你可以修改 year 和 month 变量来指定不同的年份和月份。
上面的代码生成了一个简单的日历,但是它还有一些限制。我们可以对其进行改进,使其更加灵活和完整。
javaimport java.util.Calendar;
import java.util.Scanner;
public class ImprovedCalendar {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt();
System.out.print("请输入月份:");
int month = scanner.nextInt();
printCalendar(year, month);
scanner.close();
}
public static void printCalendar(int year, int month) {
// 创建 Calendar 对象
Calendar calendar = Calendar.getInstance();
// 设置年份和月份
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1); // 月份是从 0 开始的,所以减去 1
// 获取当月的天数
int numDaysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
// 设置为该月第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 获取该月第一天是星期几
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 打印日历头部
System.out.println(" 日 一 二 三 四 五 六");
// 打印月份前的空格
for (int i = 1; i < firstDayOfWeek; i++) {
System.out.print(" ");
}
// 打印日期
for (int i = 1; i <= numDaysInMonth; i++) {
System.out.printf("%3d", i);
if ((firstDayOfWeek + i - 1) % 7 == 0) {
System.out.println();
} else {
System.out.print(" ");
}
}
}
}
这个程序首先会询问用户输入要查看的年份和月份,然后调用 printCalendar() 方法来生成对应月份的日历。你可以在此基础上进行更多的扩展,比如添加错误检查、改进格式等。