#include<iostream> #include<map> using namespace std; //例题2.8 日期累加 int isLearYear(int year) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { return 1; } return 0; } int main() { int n; cin >> n; int y, m, d, num; map<int, int> maps = { {1,31},{2,28},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31} }; for (int i = 0; i < n; i++) { cin >> y >> m >> d >> num; num += d; d = 0; while (num >= 365) { if (isLearYear(y + 1) == 1 && num >= 366) { y += 1; num -= 366; } if (isLearYear(y + 1) == 0 && num >= 365) { y += 1; num -= 365; } } int k = 0; for (k = m; k <= 12; k++) { if (isLearYear(y) == 1 && k == 2 && num >= 29) { num -= (maps[k] + 1); } else if (num > maps[k]) { num -= maps[k]; } else { break; } if (k == 12 && num > 0) { k = 0; y += 1; } } printf("%d-%02d-%02d\n", y, k, num); } return 0; }