/**
*已知1年1月1日是星期日
*/
import java.util.Scanner;
public class PerpetualCalendar{
public static void main(String[]args){
int year;
int month;
int week;
int days = 0;
int totaldays = 0;
boolean isRn;
Scanner input = new Scanner(System.in);
System.out.println("请输入年份");
year = input.nextInt();
System.out.println("请输入月份");
month = input.nextInt();
//是否闰年
if(year%400 == 0||(year%4 == 0&&year%100 != 0)){
isRn = true;
}else{
isRn = false;
}
//某年到1年1月1日总天数(包含1年1月1日)
for(int y = 1;y < year;y++){
if(y%400 == 0||(y%4 == 0&&y%100 != 0)){
totaldays += 366;
}else{
totaldays += 365;
}
}
//某月到1年1月1日的天数(包含1年1月1日)
for(int m = 1;m <= month;m++){
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if(isRn){
days = 29;
break;
}else{
days = 28;
break;
}
default:
System.out.println("输入有误");
break;
}
if(m != month){
totaldays += days;
}
}
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
//取余7余0就是星期日,week值是空格数
week = 1 + totaldays%7;
if(week == 7){
week = 0;
}
//星期几前的空格数
for(int w = 0;w < week;w++){
System.out.print("\t");
}
//打印天数
for(int d = 1;d <= days;d++){
System.out.print(d+"\t");
//打印7次换行
if((d+week)%7 == 0){
System.out.println();
}
}
}
}