#include int main(){ int flag=0; while(flag==0){ printf("menu \n"); printf("1:查询某年某月某日的日期是周几\n"); printf("2:该年是否为闰年\n"); printf("3:输出这一年的日历\n"); printf("4:退出\n"); char x[1]; scanf("%s",&x[1]); if(x[1]!=49&&x[1]!=50&&x[1]!=51&&x[1]!=52) printf("输入有误,请重新输入\n"); if(x[1]==49){ int w,d,m,y; printf("请输入年 月 日\n"); scanf("%d%d%d",&y,&m,&d); if(y<0||m<0||d<0||m>12||((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d>31)||((m==2||m==4||m==9||m==11)&&d>30)||((y%4==0&&y%100!=0||y%400==0)&&m==2&&d>29)||(y==1582&&m==10&&(d==5||d==6||d==7||d==8||d==9||d==10||d==11||d==12||d==13||d==14))){ printf("日期不存在,请重新输入\n"); } else{ if(y<=1582&&m<=10&&d<=4){ if(m==1||m==2){ y--; m+=12; } w = (d+1+2*m+3*(m+1)/5+y+y/4+5) % 7; } else{ if(m==1||m==2){ y--; m+=12; } w = (d + 1+ 2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;} switch(w){ case 0:printf("星期日\n");break; case 1:printf("星期一\n");break; case 2:printf("星期二\n");break; case 3:printf("星期三\n");break; case 4:printf("星期四\n");break; case 5:printf("星期五\n");break; case 6:printf("星期六\n");break; } } } if(x[1]==50){ int n; printf("请输入年份\n"); scanf("%d",&n); if(n%4==0&&n%100!=0||n%400==0){ printf("%d年是闰年\n",n); } else{ printf("%d年不是闰年\n",n); } } if(x[1]==51){ int y; printf("请输入年份\n"); scanf("%d",&y); if(y<=0){ printf("输入有误,请重新输入\n"); } else{ printf("1:单列输出\n2:双列输出\n"); int n,m,w,j,d,s,m1,m2,w1,w2,s1,s2,d1,d2,j1,j2; scanf("%d",&n); if(n==1){ printf("%d年\n",y); for(m=1;m<=12;m++){ printf("%d月\n",m); if(y<=1582&&m<=10){ if(m==1||m==2){ y--; m+=12; } w = (1+1+2*m+3*(m+1)/5+y+y/4+5) % 7; } else{ if(m==1||m==2){ y--; m+=12; } w = (1 + 1+ 2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;} if(m==13||m==14){ y++; m-=12; } int month_days[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(y%4==0&&y%100!=0||y%400==0){ month_days[2]=29; } s=month_days[m]; printf(" sum mon tue wed thu fri sat\n"); for(j=0;j=5&&d<=14) continue; printf("%4d",d); if(y==1582&&m==10){ if(d==16||d==23||d==30){ printf("\n"); } } else if((d+w)%7==0){ printf("\n"); } } if((s+w)%7!=0){ printf("\n"); } } } else if(n==2){ printf("%d年\n",y); for(m1=1,m2=2;m1<=11,m2<=12;m1+=2,m2+=2){ int aaa=1,cnt=1; printf("%d月 %d月\n",m1,m2); if(y<=1582&&m1<=10){ if(m1==1||m1==2){ y--; m1+=12; } w1 = (1+1+2*m1+3*(m1+1)/5+y+y/4+5) % 7; } else{ if(m1==1||m1==2){ y--; m1+=12; } w1 = (1 + 1+ 2*m1+3*(m1+1)/5+y+y/4-y/100+y/400)%7;} if(m1==13||m1==14){ y++; m1-=12; } if(y<=1582&&m2<=10){ if(m2==1||m2==2){ y--; m2+=12; } w2 = (1+1+2*m2+3*(m2+1)/5+y+y/4+5) % 7; } else{ if(m2==1||m2==2){ y--; m2+=12; } w2 = (1 + 1+ 2*m2+3*(m2+1)/5+y+y/4-y/100+y/400)%7;} if(m2==13||m2==14){ y++; m2-=12; } int month_days[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(y%4==0&&y%100!=0||y%400==0){ month_days[2]=29; } s1=month_days[m1]; s2=month_days[m2]; printf(" sum mon tue wed thu fri sat sum mon tue wed thu fri sat\n"); for(j1=0;j1=5&&d1<=14) continue; printf("%4d",d1); if(y==1582&&m1==10){ if(d1==16||d1==23||d1==30){ printf(" "); } } else if((d1+w1)%7==0){ printf(" "); while(aaa){ for(j2=0;j2=5&&d2<=14) continue; printf("%4d",d2); if(y==1582&&m2==10){ if(d2==16||d2==23||d2==30){ printf("\n"); } } else if((d2+w2)%7==0){ cnt=d2+1; printf("\n"); break; if(cnt!=d2){ printf("\n");} } } } } if((s1+w1)%7!=0){ for(j1=0;j1<7-(s1+w1)%7;j1++){ printf(" "); } printf(" \n"); if((s2+w2)%7!=0){ printf("\n"); } } } printf("\n"); } } } if(x[1]==52){ flag++; } } }