Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 8985 | Accepted: 3366 |
Description
Input
Output
Sample Input
1730 1740 1750 1751 -1
Sample Output
2004-09-26 Sunday 2004-10-06 Wednesday 2004-10-16 Saturday 2004-10-17 Sunday
#include<stdio.h>
int isRunnian(int a)
{
if(a%400==0||(a%4==0&&a%100))
return 1;
return 0;
}
int main()
{ int num=0;
int i;
int t,k,m;
struct
{
int year;
int mounth;
int day;
}date;
char str[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int b[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};//0平年1闰年
int n;
while(scanf("%d",&n)!=EOF&&n!=-1)
{
date.year=2000;date.mounth=1;date.day=1;
m=(n+6)%7;
n++;
while(n>(t=isRunnian(date.year)?366:365))
{
n-=t;
date.year++;
}
k=isRunnian(date.year);
i=0;
while(n>b[k][i])
{
n-=b[k][i];
++i;
date.mounth++;
}
date.day=n;
printf("%d-%02d-%02d %s\n",date.year,date.mounth,date.day,str[m]);
}
return 0;
}