题目描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出
输出m行,每行按yyyy-mm-dd的个数输出。
样例输入
1
2008 2 3 100
样例输出
2008-05-13
思路:
通过判断是否为闰年,修改二月份的天数; 在年份增加时也许判别是否为闰年;
代码如下:
#include <cstdio>
int main()
{
int n, y, m, d, acc;
int month[15] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
while (scanf ("%d", &n) != EOF) {
while (n--) {
scanf ("%d %d %d %d", &y, &m, &d, &acc);
if (y % 4 == 0 && y % 100 != 0 || (y % 400 == 0)) month[2] = 29; //根据平闰年修改二月天数;
else month[2] = 28;
while (acc--) {
d++;
if (d == month[m] + 1) {
m++;
d = 1;
}
if (m == 13) {
y++;
m = 1;
if (y % 4 == 0 && y % 100 != 0 || (y % 400 == 0)) month[2] = 29; //判别是否为闰年;
else month[2] = 28;
}
}
printf ("%.4d-%.2d-%.2d\n", y, m, d);
}
}
return 0;
}