Skip to main content

3564.日期类

思路

读题可以知道本题直接模拟即可。主要思路:

  1. 给日期 + 1
  2. 判断日期是否超过一个月的最大日期数(由题意不会出现闰年,所以使用哈希表存起来就行),判断月份是否需要进位
  3. 判断月份是否超过 12 个月,判断年份是否需要进位
  4. 整理输出格式

代码

#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;
}