题目描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出
输出m行,每行按yyyy-mm-dd的个数输出。
样例输入
1
2008 2 3 100
样例输出
2008-05-13
代码
#include<cstdio>
bool isLeap(int year){//是否是闰年
return (year%4==0&&year%100!=0)||(year%400==0);
}
int Month[13][2]={{},{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 main(){
int N,year,month,day,add;
scanf("%d",&N);
while(N--){
scanf("%d %d %d %d",&year,&month,&day,&add);
while(add>0){
if(add>=Month[month][isLeap(year)]){
add-=Month[month][isLeap(year)];
if(++month>12){
++year;
month=1;
}
}else{
day+=add;
if(day>Month[month][isLeap(year)]){
day-=Month[month][isLeap(year)];
if(++month>12){
++year;
month=1;
}
}
add=0;
}
}
printf("%d-%02d-%02d\n",year,month,day);
}
return 0;
}