代码如下:
import java.time.*;
public class Test001 {
public static void main(String[] args) {
LocalDate date = LocalDate.now(); // 构造一个日历对象date
int mouth = date.getMonthValue(); // 获得当前的月
int today = date.getDayOfMonth(); // 获得当前的日
//将date设置为这个月的第一天,当前天减去(today-1)即可实现
//如今天3号,3-(3-1)=1
date = date.minusDays(today - 1);
//构造一个DayOfWeek类型的对象并调用这个对象的getValue方法来得到星期几的一个数值
DayOfWeek weekday = date.getDayOfWeek();
//把这个数值赋给value,方便打印日历第一行缩进空格
int value = weekday.getValue();
//打印日历第一行前导空白
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for(int i = 1; i < value; i++) {
System.out.print(" ");
}
//打印当前月的日历
while(date.getMonthValue() == mouth){
System.out.printf("%3d", date.getDayOfMonth());//遍历打印每一天
//如果为当前日则标记*
if(date.getDayOfMonth() == today){
System.out.print("*");
}else{
System.out.print(" ");
}
//给date对象加1天
date = date.plusDays(1);
//换行打印
if(date.getDayOfWeek().getValue() ==1 )
System.out.println();
}
}
}
效果图如下: