题目
已知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;
}
本文介绍了一个使用C++编程语言实现的算法,该算法能够根据给定的起始日期和天数增量计算出未来的具体日期。通过考虑闰年和平年的差异,以及每个月份的不同天数,确保了日期计算的准确性。
883

被折叠的 条评论
为什么被折叠?



