题目
已知2007年10月10日,请求出n天后是几月几号(0<=n<=2000)
输入
多组输入,每组输入为1行,为一个正整数n(1<=n<=2000)
输出
对于每组输入,输出格式为yyyy-mm-dd,输出的值为n天后的日期
样例输入
1
2
样例输出
2007-10-11
2007-10-12
源代码
#include<iostream>
using namespace std;
int b(int);
int main()
{
int n,i,j;
int year,month,day,leap[2]={365,366};
int a[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};
while(cin>>n)
{
n=n+282;
for(year=2007;n>=leap[b(year)];year++)
n-=leap[b(year)];
for(month=0;n>=a[b(year)][month];month++)
n-=a[b(year)][month];
day=n+1;
cout<<year<<"-";
if((month+1)<10)
cout<<"0"<<month+1;
else
cout<<month+1;
cout<<"-";
if(day<10)
cout<<"0"<<day<<endl;
else
cout<<day<<endl;
}
return 0;
}
int b(int x)
{
if(x%4==0&&x%100!=0||x%400==0)
return 1;
else
return 0;
}