题意:给出天数,让你输出该天数后的日期
2000使润年。。。。
#include<stdio.h>
int Is_leap(int i)
{
if(i%400==0 || (i%4==0 && i%100!=0)) return 1;
return 0;
}
int main()
{
int n;
int i,j;
char a[8][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
int b[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int c[]={0,31,29,31,30,31,30,31,31,30,31,30,31};
while(scanf("%d",&n))
{
int t=n;
int sum=0;
if(n==-1) break;
for (i=2000;;i++)
{
if(Is_leap(i))
{
if(n-sum-366>=0) sum+=366;
else break;
}
else
{
if(n-sum-365>=0) sum+=365;
else break;
}
}
n=n-sum+1;
for (j=1;j<=12;j++)
{
if(j!=2)
{
if(n-b[j]>0) n-=b[j];
else break;
}
else
{
if(Is_leap(i))
{
if(n-c[j]>0) n-=c[j];
else break;
}
else
{
if(n-b[j]>0) n-=b[j];
else break;
}
}
}
printf("%d-%02d-%02d %s\n",i,j,n,a[t%7]);
}
return 0;
}