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.超过当年

相关推荐
小此方2 分钟前
Re:Linux系统篇(十二)工具篇 · 四:make与Makefile:高效管理 C++ 工程项目构建
linux·运维·c++·开发工具
云小逸9 分钟前
【Codex 使用教程:从项目规则、Skills、Rules 到 Hooks】
c++·人工智能·ai·codex
li星野9 分钟前
二叉树十题通关:从层序遍历到序列化(Python + C++)
开发语言·c++·python·学习
王老师青少年编程11 分钟前
csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:最大回文数
c++·字符串·csp·高频考点·信奥赛·回文字符串·最大回文数
邪修king1 小时前
UE5 进阶篇第一弹:中期架构升级 —— 组件化开发与 Gameplay 框架实战
c++·游戏·架构·ue5
知识领航员10 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
jf加菲猫12 小时前
第21章 Qt WebEngine
开发语言·c++·qt·ui
码农-阿杰13 小时前
深入理解 synchronized 底层实现:从 HotSpot C++ 源码看对象锁与 Monitor 机制
开发语言·c++·
Szime13 小时前
深智微IC华润微代理:MCU选型与工业控制方案推荐
c++
叼烟扛炮14 小时前
C++ 知识点18 内部类
开发语言·c++·算法·内部类