题解 | #日期累加#

日期累加

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

#include <bits/stdc++.h>

using namespace std;

const int months[]={
	0,31,28,31,30,31,30,31,31,30,31,30,31
};

int is_leap(int year){
	if((year%4==0 && year%100!=0) || year%400 == 0){
		return 1;
	}
	return 0;
}

int get_days(int year, int month){
	int res = months[month];
	if (month == 2){
		res += is_leap(year);
	}
	
	return res;
}

int main(){
	int t;
	cin >> t;
	while (t --){
		int year, month, day, a;
		cin >> year >> month >> day >> a;
		a = a + day; 
		while (a > get_days(year, month)){
			a = a - get_days(year, month);
			month = (month + 1);
			if (month == 13){
				month = 1;
				year ++;
			}
		}
		printf("%04d-%02d-%02d\n", year, month, a);
	}
		 
	return 0;
}

全部评论

相关推荐

StephenZ_:看你公司是按月结算还是按出勤日结算 前者会有工资,我待过
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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