简介
示例代码
Result
Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23* 24 25 26
27 28 29 30 31
和 windows 里面的完全一致
简要分析
package test1;
import java.time.*;
public class CalendarTest {
public static void main(String[] args){
LocalDate date = LocalDate.now(); // 得到当前时间
int month = date.getMonthValue(); // 得到当前月份
int today = date.getDayOfMonth(); // 得到当前日期是这个月的第几天
date = date.minusDays(today - 1); // 得到当前月份的第一天
DayOfWeek weekday = date.getDayOfWeek(); // 得到当前月份第一天是第几周
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() == 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(); // 得到月末 换行
}
}