参考代码:
import java.time.DayOfWeek;
import java.time.LocalDate;
public class CalendarTest {
public static void main(String[] args) {
// 1 获取当前日期,并用month和today存储当前月份以及当前号,例如20号,31号
LocalDate date = LocalDate.now(); // => 2024-09-20
int month = date.getMonthValue(); // => 9
int today = date.getDayOfMonth(); // => 20
// 2 将date设置为本月的第一天,并获取该天是星期几,例如7
date = date.minusDays(today - 1); // => 2024-09-01
DayOfWeek weekday = date.getDayOfWeek(); // => SUNDAY
int value = weekday.getValue(); // => 7
// 1 = Monday周一, ... , 7 = Sunday周日
// 3 打印日历头
System.out.printf("\u2728 Welcome to Month %d! \u2728%n%n", month);
// %n是一个更为通用和安全的换行方式,特别是在涉及到不同操作系统时
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for (int i = 1; i < value; ++i) { // 本月第一天一般不是周一开始!
System.out.print(" "); // 注意使用英文括号!
}
// 4 打印号,适当时候换行
while (date.getMonthValue() == month) { // 仅打印本月
System.out.printf("%3d", date.getDayOfMonth());
if (date.getDayOfMonth() == today) {
System.out.print("*"); // 如果是当天标记一个*号
} else {
System.out.print(" ");
}
date = date.plusDays(1); // 打印完一天就将date更新为下一天
if (date.getDayOfWeek().getValue() == 1) { // 如果这一天是周一,那么打印之前先换行
System.out.println();
}
}
if (date.getDayOfWeek().getValue() != 1) { // 如果这一天不是周一,但结束了,也补一个换行
System.out.println();
}
}
}
标签:日历,java,打印,System,month,date,out From: https://www.cnblogs.com/xkxf/p/18422294