#include int main(){ int n; int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; for(;;){ printf("1.查询星期\n2.打印日历\n输入需要的序号\n"); scanf("%d",&n); if(n==1) { int year,a=0,b,i,j; printf("输入年份 月份 日期\n"); scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) m[2]=29; scanf("%d",&m[0]); scanf("%d",&b); if(year==1582&&m[0]==10&&b>4&&b<15) printf("输入错误\n"); else if(year<0||m[0]<0||m[0]>12||b<0||b>31){ printf("输入错误\n"); }else if(m[2]==28&&b>28||m[2]==29&&b>29) printf("输入错误\n"); else if((m[0]==1||m[0]==3||m[0]==5||m[0]==7||m[0]==8||m[0]==10||m[0]==12)&&b==31) printf("输入错误\n"); else { j=b; if(year==1582){ m[10]-=10; if(b>=15) b-=10; } if(year>=2000) a=((year-1)*365+((year-1)/4)-((year-1)/100)+((year-1)/400)+1)%7; else a=(year/100)/4-2*(year/100)+year%100+(year%100)/4+(13*12/5); for(i=1;i=15) b-=10; } printf("%d年%d月%d日是星期%d\n",year,m[0],j,a); if(m[2]==29) printf("%d年是闰年\n",year); else printf("%d年不是闰年\n",year); } }else if(n==2) { int year,a=0,i,j,b,f; printf("输入年份\n"); scanf("%d",&year); if(year<0) printf("输入错误\n"); else { printf("1.1*12输出\n2.2*6输出\n输入需要的序号\n"); scanf("%d",&n); if(year%4==0&&year%100!=0||year%400==0) m[2]=29; if(year>=2000) a=((year-1)*365+((year-1)/4)-((year-1)/100)+((year-1)/400)+1)%7; else a=((year-1)*365+((year-1)/4)-((year-1)/100)+((year-1)/400)+1)%7; if(a==0) a=7; if(n==1) { printf("~~~~~~~~~~~~~~~~~~~~~~%.4d~~~~~~~~~~~~~~~~~~~~~~\n\n\n",year); for(i=1;i<=12;i++){ printf("~~~~~~~~~~~~~~~~~~~~~~~%.2d~~~~~~~~~~~~~~~~~~~~~~~\n",i); printf("星期一 星期二 星期三 星期四 星期五 星期六 星期日\n"); for(b=1;b7){ printf("\n"); a=1; } }printf("\n"); } }else if(n==2){ int x1,x2,x3,x4; printf("===============================================%.4d===============================================\n\n\n",year); for(i=1;i<=12;i+=2){ x2=1,x3=1; printf("~~~~~~~~~~~~~~~~~~~~~~~%.2d~~~~~~~~~~~~~~~~~~~~~~~ ",i); printf("~~~~~~~~~~~~~~~~~~~~~~~%.2d~~~~~~~~~~~~~~~~~~~~~~~\n",i+1); printf("星期一 星期二 星期三 星期四 星期五 星期六 星期日 "); printf("星期一 星期二 星期三 星期四 星期五 星期六 星期日\n"); for(b=1;bm[i+1]){ break; }else printf(" "); a++; if(a>7){ if(x1==1){ for(b=1;b7){ printf("\n"); a=1; x2++; x4=1; break; } } } } if(year==1582&&(i+1)==10){ m[10]-=10; } a=((year-1)*365+((year-1)/4)-((year-1)/100)+((year-1)/400)+1)%7; int x5; for(x5=1;x5<=i+1;x5++) a+=m[x5]; a=a%7; if(a==0) a=7; printf("\n"); } }else{ printf("输入错误\n"); return 0; } } }else printf("输入错误\n"); } }