示例中的switch语句是Java14的新特性捏
import java.time.LocalDate;
public class Test1 {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
int tomonth = date.getMonthValue();
int today = date.getDayOfMonth();
int toyear = date.getYear();
date = changToOne(date);
while (date.getYear() == toyear) {
printMonth(date);
int weekday = date.getDayOfWeek().getValue();
System.out.println("Mon\tTue\tWed\tThu\tFri\tSat\tSun");
//打印缩进
for (int i = 1; i < weekday; i++) {
System.out.print(" \t");
}
int month = date.getMonthValue();
while (date.getMonthValue() == month) {
System.out.printf("%3d", date.getDayOfMonth());
if (month == tomonth && date.getDayOfMonth() == today) {
System.out.print("*");
} else {
System.out.print("\t");
}
if (date.getDayOfWeek().getValue() == 7) {
System.out.println();
}
date = date.plusDays(1);
}
System.out.println("\n");
date.plusMonths(1);
}
}
//回退到今年首月首天
public static LocalDate changToOne(LocalDate date) {
int day = date.getDayOfMonth();
int month = date.getMonthValue();
date = date.minusDays(day - 1);
date = date.minusMonths(month - 1);
return date;
}
//打印月份
public static void printMonth(LocalDate date) {
int month = date.getMonthValue();
switch (month) {
case 1 -> System.out.println("一月:");
case 2 -> System.out.println("二月:");
case 3 -> System.out.println("三月:");
case 4 -> System.out.println("四月:");
case 5 -> System.out.println("五月:");
case 6 -> System.out.println("六月:");
case 7 -> System.out.println("七月:");
case 8 -> System.out.println("八月:");
case 9 -> System.out.println("九月:");
case 10 -> System.out.println("十月:");
case 11 -> System.out.println("十一月:");
case 12 -> System.out.println("十二月:");
default -> System.out.println("erro");
}
}
}