#include<bits/stdc++.h>
using namespace std;
bool run(int y) {
if(y%4!=0) return false;
else if(y%100==0&&y%400!=0) return false;
else return true;
}
int m1[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
int m2[12]= {31,29,31,30,31,30,31,31,30,31,30,31};
int main() {
int year,month,week;
scanf("%d%d",&year,&month);
int day=0;//从1900年1月1日,到这个月的第一天,一共过去多少天
for(int i=1900; i<year; i++) {
if(run(i)==true) day+=366;
else day+=365;
}
for(int i=0; i<=month-2; i++) {
if(run(year)==true) day+=m2[i];
else day+=m1[i];
}
week=day%7;//这个月的第一天是星期几
printf("Sun Mon Tue Wed Thu Fri Sat\n");
if(week!=6) {
printf(" ");
for(int i=1; i<=week-1; i++) printf(" ");
}
int k,m;
if(run(year)) m=m2[month-1];
else m=m1[month-1];
for(k=1; k<=m; k++) {
printf("%3d",k);
if(k!=m) {
if(week==5) printf("\n");
else printf(" ");
}
week=(week+1)%7;
}
}
POJ打印月历
最新推荐文章于 2020-04-20 17:05:44 发布