用java编写日历代码

java
import 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(" "); } } } }

这个程序会生成指定年份和月份的日历,并以星期日作为每周的开始。你可以修改 yearmonth 变量来指定不同的年份和月份。

上面的代码生成了一个简单的日历,但是它还有一些限制。我们可以对其进行改进,使其更加灵活和完整。

java
import 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() 方法来生成对应月份的日历。你可以在此基础上进行更多的扩展,比如添加错误检查、改进格式等。