import java.time.LocalDate;
import java.time.DayOfWeek;
public class Ccc {
public static void main(String[] args) {
LocalDate date = LocalDate.now(); // 获取当前日期
int month = date.getMonthValue(); // 获取月份
int today = date.getDayOfMonth(); // 获取今天是本月的第几天
// 将date设置为本月的第一天
date = date.withDayOfMonth(1);
DayOfWeek weekday = date.getDayOfWeek(); // 获取本月第一天是星期几
// 打印日历头
System.out.printf("\u2728 Welcome to Month %d! \u2728%n%n", month);
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
// 打印本月第一天前的空格
for (int i = 1; i < weekday.getValue(); i++) {
System.out.print(" ");
}
// 打印日历中的每一天
while (date.getMonthValue() == month) {
int dayOfMonth = date.getDayOfMonth();
System.out.printf("%3d", dayOfMonth);
if (dayOfMonth == today) {
System.out.print("*"); // 如果是今天,则标记为*
}
// 移动到下一天
date = date.plusDays(1);
// 如果是新的一周的开始(星期一),则换行
if (date.getDayOfWeek() == DayOfWeek.MONDAY) {
System.out.println();
}
}
// 如果本月最后一天不是星期六(即,打印完本月后不是自动换行的),则手动换行
if (date.getDayOfWeek() != DayOfWeek.SATURDAY) {
System.out.println();
}
}
}