题解 | #日期累加#想了很久了

日期累加

https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d

#include <iostream>

using namespace std;

int daytab[2][13] = {
	{0,31,28,31,30,31,30,31,31,30,31,30,31
	},
	{0,31,29,31,30,31,30,31,31,30,31,30,31
	}
};

bool isLeapYear(int x){
	return (x % 4 == 0&& x % 100 != 0) || (x % 400 == 0);
}


int main(){
	int n;
	cin >> n;
	while(n --){
		int y,m,d,x,newd,flag;
		cin >> y >> m >> d >> x;
		x = x + d;
		d = 0;
		while(x >= daytab[isLeapYear(y)][m]){
			x = x - daytab[isLeapYear(y)][m];
			if(m == 12){
				y ++;
				m = 1;
			}else{
				m ++;
			}
		}
		d = d + x;
		if(d == 0){
			m --;
			d = daytab[isLeapYear(y)][m];
		}
		printf("%04d-%02d-%02d\n",y,m,d);
	}
	
	return 0;
}

全部评论

相关推荐

09-29 15:34
已编辑
北京航空航天大学 C++
做个有文化的流氓:结果是好的,过程不重要,而且你的offer太多了
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务