codeup之日期累加

题目描述

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

输入

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

输出

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

样例输入

1
2008 2 3 100

样例输出

2008-05-13

solution

#include <stdio.h>
int leap(int i){
	if(i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
		return 0;
	else
		return 1;
}

int main(){
	int N, y, n, m, d, month[13][2] = {
	{0}, {31, 31}, {29, 28}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}
	};
	while(scanf("%d", &N) != EOF){
		while(N-- > 0){
			scanf("%d%d%d%d", &y, &m, &d, &n);
			while(n--){
				d++;			
				if(d > month[m][leap(y)]){
					m++;
					d = 1;
				}
				if(m > 12){
					y++;
					m = 1;
				}
			}
			printf("%04d-%02d-%02d\n", y, m, d);
		}
	}
	return 0;
}
posted @ 2022-01-07 17:11  Moliay  阅读(11)  评论(0编辑  收藏  举报