下面我们就以一个简单的日历小程序来小试一下身手。
package Calendar; import java.time.DayOfWeek; import java.time.LocalDate; public class CalendarTest { public static void main(String[] args) { LocalDate date = LocalDate.now(); //获取当前日历 int today = date.getDayOfMonth(); //获取当前月日 int month = date.getMonthValue(); date = date.minusDays(today - 1); //调到当前月的月首,即当前日期减today - 1天 DayOfWeek dayOfWeek = date.getDayOfWeek(); //获得月首是一个星期的星期几 System.out.println("Mon Tue Wed Thu Fri Sat Sun"); for (int i = 1; i < dayOfWeek.getValue(); i++) { System.out.print(" "); //因为我们格式化输出的时候是3个字符间距在加上上面"Mon Tue Wed Thu Fri Sat Sun"之间各有一个空格间距所以输出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); //当前日期加一天 if(date.getDayOfWeek().getValue() == 1) { System.out.println(); //如果是星期一则调到另一行的行首 } } } }