题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream> using namespace std; int GetMonthsDays(int year,int month) { int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(month==2 && (year%400==0||(year%4==0&&year%100!=0))) return 29; return months[month]; } int main() { int n = 0; cin>>n; for(int i =0;i<n;++i) { int year =0,month = 0,day = 0,days = 0; cin>>year>>month>>day>>days; day+=days; while(day>GetMonthsDays(year, month)) { day-=GetMonthsDays(year, month); ++month; if(month==13) { ++year; month=1; } } printf("%04d-%02d-%02d\n",year,month,day); } } // 64 位输出请用 printf("%lld")