#include <iostream> using namespace std; int daytab[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} }; //日期类 class Date{ private: int year,month,day; public: Date(int y,int m,int d):year(y),month(m),day(d){}; bool isLeapYear(int year){ return year%100!=0 && year%4==0 || year%400==0; } //日期转化为这一年的第几天 int date2day(int year,int month,int day){ int row = isLeapYear(year); int res = 0; for(int i=1;i<month;i++){ res += daytab[row][i]; } return res+day; } //天数转化为日期 void day2date(int &year,int &month,int &day){ int row = isLeapYear(year); for(month=1;day>daytab[row][month];month++){ day-=daytab[row][month]; } } //得出下一年 void nextDate(int &year,int &month,int &day){ int nextday = date2day(year,month,day)+1; if(nextday>365 + isLeapYear(year)){ year++; month = 1; day = 1; }else{ day = nextday; day2date(year,month,day); } } //打印下一年 void printNextDate(int year,int month,int day){ nextDate(year,month,day); printf("%04d-%02d-%02d\n",year,month,day); } }; int main() { int num; cin>>num; int year,month,day; while(cin>>year>>month>>day){ Date date(year,month,day); date.printNextDate(year,month,day); } }