#include <iostream> #include <cstdio> using namespace std; /* * 二维数组保存平年和闰年0~12月份对应的天数 */ int dayTable[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, //平年 {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} //闰年 }; /** * 判断是否为闰年 * @param year * @return */ int isLeapYear(int year) { //return (year & 3 == 0 && year % 100 != 0) || year % 400 == 0; return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; } /** * 日期类--北京理工大学 * @return */ int main() { int year, month, day; int m; cin >> m; for (int i = 0; i < m; ++i) { cin >> year >> month >> day; /* * 若day等于一个完整月,则month + 1 * 注意判断month是否为12,若为12,则year++,month置0 * * 若不等于一个完整月,则day++即可 */ if (day == dayTable[isLeapYear(year)][month]) { //day等于一个完整月的天数 day = 1; if (month == 12) { month = 0; year++; } month++; } else { //day不等于一个完整月的天数 day++; } printf("%4d-%02d-%02d\n", year, month, day); } return 0; }