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 @   Moliay  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示