题意:随便给出一个整数,输出其年月日&&星期,从2000年1.1开始算起: #include<stdio.h> char *name[] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; int time1[15]={31,28,31,30,31,30,31,31,30,31,30,31}; int time2[15]={31,29,31,30,31,30,31,31,30,31,30,31}; bool find(int a) { if((a%100!=0&&a%4==0)||a%400==0) return true; return false; } int main(void) { int d, m, y, a,n,l,yu,i,n1; while(scanf("%d",&n)!=EOF) { if(n==-1) break; n1=n; y=2000; while(n>364) { if(!find(y)) {n-=365;y++;} else { if(n>365){ n-=366;y++;} else break; } } m=1;d=1; if(find(y)) { for(i=0;n-time2[i]>=0;i++) { n-=time2[i]; } m+=i;d+=n; } else { for(i=0;n-time1[i]>=0;i++) { n-=time1[i]; } m+=i;d+=n; } printf("%d-%02d-%02d ",y,m,d); /* if (m == 1 || m == 2) { m += 12; y--; } if ((y < 1752) || (y == 1752 && m < 9) ||(y == 1752 && m == 9 && d < 3)) a = (d + 2*m + 3*(m+1)/5 + y + y/4 +5) % 7; else a = (d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7; printf("%s/n", name[a]);*///根据年月日计算星期 char week[7][10]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; i=(n1%7+6)%7; puts(week[i]);//根据年计算星期 } return 0; }