import java.util.Calendar;
import java.util.Scanner;
public class demo07 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入您要打印日历的年和月:");
while(true) {
int year=scanner.nextInt();
int month=scanner.nextInt();
if(month<=0 || month>12) {
System.out.println("请输入合理的月份!");
continue;
}
printCalendar(year, month);
}
}
//在命令行输入年份和月份,打印输出月历
//思考:用Calendar工具日历类,不用再写逻辑去判断闰年了
//
public static void printCalendar(int year,int month) {
Calendar a = Calendar.getInstance();//获取当前时间
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month-1);// Calendar月份是以0开始的 所以要-1
a.set(Calendar.DAY_OF_MONTH, 1);//把日期设置为当月第一天
int day = a.getActualMaximum(Calendar.DAY_OF_MONTH);// 当月最大天数
int week = a.get(Calendar.DAY_OF_WEEK); // 1代表周日,7代表周六 判断这是一个星期的第几天从而判断是否是周末
// if ((year%4==0&&year%100!=0)||year%400==0) {
// System.out.println("该年为闰年");
// }else {
// System.out.println("该年非闰年");
// }
//
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=0;i<week-1;i++) {
System.out.print("\t"); //确保日历从正确的位置开始
}
for(int i=1;i<=day;i++) {
System.out.print(i+"\t");
if(a.get(Calendar.DAY_OF_WEEK)==7) { //如果是周六就换行打印
System.out.println();
}
a.add(Calendar.DATE,1); //天数加1
}
}
}
根据年月打印当月日历
于 2022-11-02 20:19:43 首次发布