U728990 补给抵达日期 (Hard Version)
题目背景
远航舰队采用标准的地球历法进行时间同步。由于各个前线空间站的距离不同,补给飞船在太空中航行所需的时间 $n$ 天也各不相同。
题目描述
给定基地发出补给飞船的日期,以及飞船航行所需的天数 $n$,请你编写程序,计算并输出飞船抵达前线空间站的确切日期。
由于沿用地球历法,你需要考虑不同月份的天数差异,以及二月份的闰年与平年情况。
保证输入日期合法,并且计算得到的日期仍然位于:
`1000-01-01` 至 `9999-12-31`
范围内。
输入格式
第一行输入一个整数 $T$,表示共有 $T$ 组测试数据。
接下来 $T$ 行,每行输入一个发出补给的日期和一个非负整数 $n$,两者之间用一个空格隔开。
日期格式如下:
`yyyy-mm-dd`
其中:
- yyyy 表示四位年份;
- mm 表示两位月份;
- dd 表示两位日期。
如果数字不足规定位数,前面使用 0 补齐。
输出格式
对于每组测试数据,输出一行,表示补给抵达的日期(即输入日期的 $n$ 天后)。
输出格式:
`yyyy-mm-dd`
说明/提示
### 数据范围
对于 $100\%$ 的测试数据:
- $1 \le T \le 10000$
- $0 \le n \le 10000$
### 说明
地球历法的闰年判断规则如下:
- 能被 400 整除的年份是闰年;
- 能被 4 整除但不能被 100 整除的年份是闰年;
- 其他年份均为平年。
例如:
- 2000 是闰年
- 1900 不是闰年
- 2024 是闰年
- 2023 不是闰年