class Calender{//1900年1月1日星期一
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
int year = input.nextInt();
System.out.println("请输入月份:");
int month = input.nextInt();
int days =0;
for (int i=1900;i<year; i++){//先计算年份共有多少天
if (year%4==0&&year%100!=0||year%400==0){
days+=366;
}else{
days+=365;
}
}
for (int i=1;i<month;i++){//再计算月份有多少天
if (i==2){
if (year%4==0&&year%100!=0||year%400==0){//闰月29天
days+=29;
}else{
days+=28;
}
}else if (i==1||i==3||i==5||i==7||i==8||i==10||i==12) {
days+=31;
}else{
days+=30;
}
}
int week = 1+days%7;//总天数除7再加1等于当月一号是星期几
System.out.println("\t\t" + year + "年" + " " + month + "月");
System.out.println("一\t二\t三\t四\t五\t六\t日\t");//打印行头
for (int i =1;i<week; i++){//打印第一行可能的空格
System.out.print("\t");
}
int daymonth= 0;
switch(month){//计算当月天数
case 2:
if (year%4==0&&year%100!=0||year%400==0){
daymonth=29;
}else{
daymonth=28;
}
break;
case 4:
case 6:
case 9:
case 11:
daymonth=30;
break;
default:
daymonth=31;
break;
}
for (int i=1;i<=daymonth;i++){
System.out.print(i+"\t");
if ((week-1+i)%7==0){//打印换行
System.out.println();
}
}
}
}