已知今天的日期,请你推算若干天后是什么日期。
说明:假设今天的日期是 y1 年 m1 月 d1 日,过 n 天后的日期为 y2 年 m2 月 d2 日。
输入格式
y1/m1/d1
n(n>0)
输出格式
y2/m2/d2
注:y2 至少4位数字,m2 和 d2 至少2位数字,若位数不够,则前面补0。
输入样例
2018/2/14
22
结尾无空行
输出样例
2018/03/08
结尾无空行
思路:定义枚举变量t,当t超过所要的天数就输出。
#include<bits/stdc++.h>
using namespace std;
bool judge(int x) //判断闰年
{
if(x%400==0||x%4==0&&x%100!=0) return 1;
else return 0;
}
int main()
{ int year,month,day,n;
char c;
cin>>year>>c>>month>>c>>day;
cin>>n;
int t=0;
for(int y=year;;y++)
{ int m=month;
for(;m<=12;m++)
{
switch(m)
{ case 2:if(judge(y)) t+=29-day; else t+=28-day;break;
case 4:
case 6:
case 9:
case 11:t+=30-day; break;
default:t+=31-day;break;
}
day=0;
if(t>=n) //超过所要求的天数
{ switch(m) //把超过的部分减去
{ case 2:if(judge(y)) day=29-t+n; else day=28-t+n;break;
case 4:
case 6:
case 9:
case 11:day=30-t+n; break;
default:day=31-t+n;break;
}
printf("%04d/%02d/%02d\n",y,m,day);
exit(0);
}
}
month=1;
}
return 0;
}