用java编写日历代码

java
import java.text.SimpleDateFormat; import java.util.Calendar; public class CalendarExample { public static void main(String[] args) { // 获取当前日期 Calendar calendar = Calendar.getInstance(); // 设置日期为当前月的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); // 获取当前月份 int month = calendar.get(Calendar.MONTH); // 打印月份和年份 SimpleDateFormat sdf = new SimpleDateFormat("MMMM yyyy"); System.out.println(sdf.format(calendar.getTime())); // 打印星期几的缩写 System.out.println("Sun Mon Tue Wed Thu Fri Sat"); // 打印月份的第一天之前的空格 for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) { System.out.print(" "); } // 打印每天的日期 while (calendar.get(Calendar.MONTH) == month) { System.out.printf("%3d ", calendar.get(Calendar.DAY_OF_MONTH)); // 如果是星期六,换行 if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(); } // 移动到下一天 calendar.add(Calendar.DAY_OF_MONTH, 1); } } }

此程序通过使用Calendar类获取当前日期和月份,然后使用SimpleDateFormat类将日期格式化为字符串。接着,它打印出月份和年份,并以表格形式打印一个月的日历。此代码是基本示例,可能需要根据实际需求进行调整。

如果你希望用户能够输入年份和月份,以生成指定月份的日历,你可以添加一些用户输入的代码。

java
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Scanner; public class CalendarExample { 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(); // 检查输入的月份是否在有效范围内 if (month < 1 || month > 12) { System.out.println("无效的月份输入。"); return; } // 获取用户指定年份和月份的日期 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month - 1); // 月份是从0开始的,所以要减1 calendar.set(Calendar.DAY_OF_MONTH, 1); // 打印月份和年份 SimpleDateFormat sdf = new SimpleDateFormat("MMMM yyyy"); System.out.println(sdf.format(calendar.getTime())); // 打印星期几的缩写 System.out.println("Sun Mon Tue Wed Thu Fri Sat"); // 打印月份的第一天之前的空格 for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) { System.out.print(" "); } // 打印每天的日期 while (calendar.get(Calendar.MONTH) == month - 1) { System.out.printf("%3d ", calendar.get(Calendar.DAY_OF_MONTH)); // 如果是星期六,换行 if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(); } // 移动到下一天 calendar.add(Calendar.DAY_OF_MONTH, 1); } } }

这个版本中,用户需要输入年份和月份,程序会根据用户输入生成相应月份的日历。这个程序还需要进行一些输入验证,以确保用户输入的年份和月份是有效的。

标签