题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream> using namespace std; int month_day(int month,int year){ int months[13] = {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 months[month]; } int main() { int n; cin >> n; while (n--) { // 注意 while 处理多个 case int year = 0, month = 0, day = 0,days = 0; cin >> year >> month >> day >> days; while(days--){ day++; if(day > month_day(month,year)){ ++month; if(month > 12){ ++year; month = 1; } day = 1; } } printf("%04d-%02d-%02d\n",year,month,day); } } // 64 位输出请用 printf("%lld")