KY258 日期累加

KY258 日期累加

cpp 复制代码
int main()
{
	int n = 0;       //样例个数
	cin >> n;

	//for循环处理n个样例
	for (int i = 0; i < n; i++)
	{
		int y, m, d, num;
		int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
		//输入年月日 要加的天数
		cin >> y >> m >> d >> num;

		d += num;
		//超过当月
		while (d > days[m - 1])
		{
			//当前年份 二月所含天数
			if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
				days[1] = 29;
			else
				days[1] = 28;

			//减去当月天数 月份++
			d -= days[m - 1];
			m++;

			//天数减成0 不存在0号   自动更新为下一月的1号
			if (d == 0)
				d = 1;
			//月份加成13 不存在13月 自动更新为下一年的1月
			if (m == 13)
			{
				y++;
				m = 1;
			}
		}
		printf("%4d-%02d-%02d\n", y, m, d);
	}
	return 0;
}

这道题会输入一个数: 样例的个数 我们需要对每个样例处理一次

在每个样例中 我们定义一个天数数组

当天天数 + 要增加的天数 结果有3种

1.未超过当月 不做处理

2.超过当月 减去当月天数 月份++

3.超过当年

相关推荐
金刚狼8814 分钟前
UUID和Name不在同一条BLE广播报文里
c++·windows
wanderist.15 分钟前
从Nim游戏到SG函数
c++·算法·蓝桥杯
967736 分钟前
C++ 内存管理的核心——RAII 机制。两种锁 lock_guard, unique_lock
java·jvm·c++
wljy138 分钟前
第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(个人见解,已完结)
c语言·c++·算法·蓝桥杯
CoderCodingNo40 分钟前
【GESP】C++八级考试大纲知识点梳理 (7) 算法的时间和空间效率分析
开发语言·c++·算法
程序员zgh40 分钟前
C++ 环形队列 从原理到实例演示
c语言·开发语言·数据结构·c++·学习
誰能久伴不乏44 分钟前
从数字世界到物理引擎:用 PWM 撕开 0 和 1 的结界
linux·arm开发·c++·qt
Trouvaille ~1 小时前
【优选算法篇】拓扑排序——逻辑先后与任务依赖的终极拆解
数据结构·c++·算法·leetcode·青少年编程·蓝桥杯·拓扑学
rqtz1 小时前
【C++】 探秘网络通信:大小端序转换与结构体对齐底层逻辑
c++·网络通信·字节对齐
南境十里·墨染春水1 小时前
C++ 笔记 运算符重载(面象对象)
开发语言·c++·笔记