#include <iostream> using namespace std; class date { public: friend ostream& operator<<(ostream& out, const date& d); date operator+(int n); date(int year,int month,int day); int GetMonthDay(int year, int month); private: int _year; int _month; int _day; }; ostream& operator<<(ostream& out,const date& d) { printf("%04d-%02d-%02d",d._year,d._month,d._day); return out; } int date::GetMonthDay(int year,int month) { static int monthday[13]={-1,31,28,31,30,31,30,31,31,30,31,30,31}; if(month==2&& ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) { return 29; } return monthday[month]; } date::date(int year,int month,int day) { _day=day; _month=month; _year=year; } date date::operator+(int n) { int year=this->_year; int month=this->_month; int day=this->_day; while(day+n>GetMonthDay(year, month)) { n-=GetMonthDay(year, month); month++; if(month>12) { year++; month=1; } } day+=n; return date(year,month,day); } int main() { int m,year,month,day,n; cin>>m; while(m--) { while(cin>>year>>month>>day>>n) { date d(year,month,day); date d1=d+n; cout<<d1<<endl; } } }