calendar import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner s=new Scanner(System.in); int y= s.nextInt(); if (y<1900){ System.out.println("请输入大于或等于1900的年份"); System.exit(0);} int m= s.nextInt(); if (m>12||m<1){ System.out.println("请输入正确的月份"); System.exit(0);} int dd=0; //统计与1900年1月1日相隔的天数。 //先算年再算月 for(int year=1900;year<y;year++) { if ((year%4==0&&year%100!=0)||year%400==0) dd+=366; else dd+=365; } for(int i=1;i<m;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) dd+=31; else if (i==6||i==4||i==9||i==11)dd+=30; else{ if(y%400==0||(y%4==0||y%100!=0)) dd+=29; else dd+=28; } } //与1900年1月1日相隔的天数对7取余就是该xian天星期数 int xq=dd%7; System.out.println(xq); System.out.println("=================================================="); System.out.println("日\t一\t二\t三\t四\t五\t六"); int wz=1,Mmax; if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) Mmax=31; else if (m==6||m==4||m==9||m==11)Mmax=30; else{ if(y%400==0||(y%4==0||y%100!=0)) Mmax=29; else Mmax=28; } //制作日历,通过wz来确定日期移动 for(int i=0;i<=5;i++) { for(int j=0;j<7;j++) { if(i==0&&j<xq){ System.out.print("\t"); continue;} if(wz>Mmax) break; System.out.print(wz+"\t"); wz++; } System.out.println(); if(wz>Mmax) break; } System.out.println("=================================================="); } }