下面我们就以一个简单的日历小程序来小试一下身手。
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(); //如果是星期一则调到另一行的行首
}
}
}
}