http://acm.hit.edu.cn/hoj/problem/view?id=1976
2000-01-01是星期六
#include <stdio.h>
int isrun(int x);
int main()
{
char week[7][10] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
int year[2] = {365, 366};
int month[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}};
int day, y, m, dayofweek;
while (scanf("%d", &day) != EOF)
{
if (day == -1)
break;
dayofweek = day % 7;
for (y = 2000; day >= year[isrun(y)]; y++)
day -= year[isrun(y)];
for (m = 0; day >= month[isrun(y)][m]; m++)
day -= month[isrun(y)][m];
printf("%04d-%02d-%02d %s\n", y, m+1, day+1, week[dayofweek]);
}
return 0;
}
int isrun(int x)
{
if( ( (x % 100 != 0) && (x % 4 == 0) ) || (x % 400 == 0))
return 1;
else
return 0;
}