题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream> using namespace std; int Getmonthday(int year,int month){ int monthday[]={0,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]; } int main() { int m,year,month,day,number; while(cin >> m){ while (cin>>year>>month>>day>>number){ while(number>=0){ int d = Getmonthday(year,month); if(d-day < number){ number -= d-day; month++; day =0; if(month >= 13){ month =1; year ++; } } else { day+=number; break; } } printf("%04d-%02d-%02d\n",year,month,day); } } } // 64 位输出请用 printf("%lld")