用java编写日历代码
javaimport 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
类将日期格式化为字符串。接着,它打印出月份和年份,并以表格形式打印一个月的日历。此代码是基本示例,可能需要根据实际需求进行调整。
如果你希望用户能够输入年份和月份,以生成指定月份的日历,你可以添加一些用户输入的代码。
javaimport 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);
}
}
}
这个版本中,用户需要输入年份和月份,程序会根据用户输入生成相应月份的日历。这个程序还需要进行一些输入验证,以确保用户输入的年份和月份是有效的。