题解 | 日期累加
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream>
using namespace std;
int GetMonthDay(int year, int month) {
static int days[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;
} else {
return days[month];
}
}
int main() {
int m;
cin>>m;
for(int i = 0; i < m; i++){
int yyyy, mm, dd, n;
cin>>yyyy>>mm>>dd>>n;
while(n > 0){
dd += 1;
if(dd > GetMonthDay(yyyy, mm)){
dd = 1;
mm += 1;
}
if(mm > 12){
mm = 1;
yyyy += 1;
}
n -= 1;
}
printf("%04d-%02d-%02d\n",yyyy,mm,dd);
}
}

