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