描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入描述:
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出描述:
输出m行,每行按yyyy-mm-dd的个数输出。
示例1
输入:
1
2008 2 3 100
输出:
2008-05-13
#include <bits/stdc++.h>
using namespace std;
bool isLeapYear(int year){
if(year%400==0 || year%4==0 && year%100!=0) return true;
else return false;
}
int main(){
int n;
int year, month, day, num;
cin >> n;
while(n--){
int month_day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if(isLeapYear(year)) month_day[2] = 29;
cin >> year >> month >> day >> num;
int overday = num+day;
while((overday) > month_day[month]){
overday -= month_day[month];
month++;
if(month>12){
month = 1;
year++;
if(isLeapYear(year)) month_day[2] = 29;
else month_day[2] = 28;
}
}
printf("%04d-%02d-%02d\n", year, month, overday);
}
return 0;
}