题目描述:
2000年1月1日是星期六,现在给你任意一个天数n,代表其距离2000年1月1日有n天,让你求该天是几年几月几日,星期几。比如n=2,输出“2000-1-3 Monday”。(记得注意闰年有366天,而且二月有29天)
AC代码:
#include <stdio.h>
int isLeap(int year)
{
if(year%400==0||(year%4==0&&year%100!=0))return 1;
return 0;
}
void show(int num)
{
if(num==0)printf("Monday");
else if(num==1)printf("Tuesday");
else if(num==2)printf("Wednesday");
else if(num==3)printf("Thursday");
else if(num==4)printf("Friday");
else if(num==5)printf("Saturday");
else printf("Sunday");
printf("\n");
}
int main()
{
int a[13][2]={{31,31},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
int n;
while(scanf("%d",&n)!=EOF)
{
int year=2000,month=1,day=1,num=5;
for(;n>0;n--)
{
day++;
num++;
num%=7;//num的范围是0到6
if(day-1==a[month][isLeap(year)])
{
day=1;
month++;
}
if(month==13){
year++;
month=1;
}
}
//printf("%d\n",num);
printf("%d-%d-%d ",year,month,day);
show(num);
}
}