3564.日期类
caution
思路
读题可以知道本题直接模拟即可。主要思路:
- 给日期 + 1
- 判断日期是否超过一个月的最大日期数(由题意不会出现闰年,所以使用哈希表存起来就行),判断月份是否需要进位
- 判断月份是否超过 12 个月,判断年份是否需要进位
- 整理输出格式
代码
#include <bits/stdc++.h>
using namespace std;
int T;
// 确定哪些月是大月,哪些月是小月
const int months[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main() {
cin >> T;
while (T--) {
int yy, mm, dd, res;
cin >> yy >> mm >> dd;
dd++;
if (dd > months[mm]) {
dd = 1;
mm++;
if (mm > 12) {
mm = 1;
yy++;
}
}
printf("%04d-%02d-%02d\n", yy, mm, dd);
}
return 0;
}