日期累加

题目描述:
设计一个程序能计算一个日期加上若干天后是什么日期。


输入格式:
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。

输出格式:
输出m行,每行按yyyy-mm-dd的个数输出。


输入样例:
1
2008 2 3 100

输出样例:
2008-05-13


train of thought:

code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
bool isyear(int n)
{
return (n % 400 == 0) || (n % 100 != 0 && n % 4 == 0);
}
int months[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}};
int main()
{
int year, month, day, n, i = 0, j = 0;
scanf("%d%d%d%d", &year, &month, &day, &n);
while (j <= n)
{
j++;
day++;
if (day == months[month][isyear(year)] + 1)
{
month++;
if (month == 13)
{
year++;
month = 1;
day = 1;
if (j == n)
printf("%04d-%02d-%02d\n", year, month, day);
}
else
{
day = 1;
if (j == n)
printf("%04d-%02d-%02d\n", year, month, day);
}
}
else
{
if (j == n)
printf("%04d-%02d-%02d\n", year, month, day);
}
}
return 0;
}