#include<iostream> using namespace std; int tell(int year) { if(year%4!=0||(year%100==0&&year%400!=0)) return 0;//平年 else return 1;//闰年 } int main() { int year,month; int M[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31, 0,31,29,31,30,31,30,31,31,30,31,30,31};//最前面要加零 char week[7][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday"}; int y[3]={365,366}; int d; while(cin>>d&&d!=-1) { //week; int i=d%7; //year; year=2000;month=1; while(d>=y[tell(year)]) { d=d-y[tell(year)]; year++; }//cout<<d<<endl; //month; while(d>=M[tell(year)][month]) { d=d-M[tell(year)][month]; month++; } printf("%d-%02d-%02d %s/n",year,month,d+1,week[i]); } system("pause"); return 0; } http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1420