#include <climits> #include <iostream> using namespace std; int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int Get_yearMonthDay(int year,int month) { int day = days[month]; month==2 && (year%4==0 && year%100!=0 || year%400==0) && day++; return day; } class Date { public: int _year; int _month; int _day; Date(int year=0, int month=0, int day=0): _year(year),_month(month),_day(day){ } Date& operator+(int day) { _day += day; while(_day > Get_yearMonthDay(_year,_month)) { _day -= Get_yearMonthDay(_year,_month); _month++; if(_month == 13) { _month = 1; _year++; } } return *this; } void show() { cout<<_year<<"-"; if(_month<10) cout<<"0"<<_month<<"-"; else cout<<_month<<"-"; if(_day<10) cout<<"0"<<_day<<endl; else cout<<_day<<endl; } }; int main() { int n,y,m,d,t; cin>>n; while (n--) { // 注意 while 处理多个 case cin >> y >> m >> d >> t; Date D(y,m,d); D+t; D.show(); } } // 64 位输出请用 printf("%lld")