简单的日期-时间类的练习例子
实现代码
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;
import java.util.Scanner;
public class PrintCalendar {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("输入一个年份(如2019 )");
printCalendars(in.nextInt());
}
public static void printCalendars(int year) {
for (int month = 1; month < 13; month++) {
System.out.println();
//得到本个月的第一天日期
LocalDate dates = LocalDate.of(year, month, 1);
String monthName = dates.getMonth().getDisplayName(TextStyle.FULL, Locale.getDefault());
//返回当前月的天数
int daysOfMonth = dates.lengthOfMonth();
System.out.println(year+"年 "+monthName);
System.out.println("-----------------------------------");
System.out.printf("%10s%10s%10s%10s%11s%10s%10s%n", "日","一","二","三","四","五","六");
int dayOfWeek = dates.getDayOfWeek().getValue();
for (int i = 1; i <= dayOfWeek&&dayOfWeek!=7; i++) {
System.out.printf("%5s", " ");
}
//输出该月的日期
for (int i = 1; i <= daysOfMonth; i++) {
System.out.printf("%5d",i);
if ((dayOfWeek+i)%7==0) {
System.out.println();
}
}
}
}
}
参考:Java语言程序设计第三版
测试结构
补充一小点
通用的日期,周日才是一个星期的第一天。