题解 | #日期累加#

日期累加

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

#include<bits/stdc++.h>

using namespace std;

void NextDay(int &year,int &month,int &day) {
	// & 出现在定义or形参当中 表示引用的意思 出现在其他位置,表示取地址
	// 存储一下 月份和天数的对应关系
	int dayOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	int isLeap; // 是否是闰年
	isLeap = year % 400 == 0 || year % 4 == 0 && year % 100 != 0;
	if (isLeap) {
		dayOfMonth[2] = 29;
	} else {
		dayOfMonth[2] = 28;
	}

	++day;
	if (day > dayOfMonth[month]) {
		day = 1;
		++month;
	}
	if (month > 12) {
		month = 1;
		++year;
	}
}

int main() {
	int n;
	scanf("%d",&n);
	for(int j=0; j<n; ++j) {
		int year;
		int month;
		int day;
		int next;
		scanf("%d%d%d%d",&year,&month,&day,&next);
		int cur_month=month;
		int cur_day=day;
		for(int i=next; next>0; next--) {
			NextDay(year,cur_month,cur_day);
		}
		printf("%d-%02d-%02d\n",year,cur_month,cur_day);
	}

	return 0;
}

全部评论

相关推荐

一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务