题解 | 日期累加
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream>
using namespace std;
int Getmonday(int year, int month) {
int arr[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
arr[2]++;
}
return arr[month];
}
int main() {
int num;
cin >> num;
int year, mon, day;
int daynum;
while (num--) {
scanf("%d%d%d%d", &year, &mon, &day, &daynum);
day+=daynum;
while(day>Getmonday(year,mon)){
if(day>Getmonday(year,mon)){
day-=Getmonday(year,mon);
mon++;
}
if(mon>12){
year++;
mon = 1;
}
}
printf("%d-%02d-%02d\n",year,mon,day);//格式要求
}
}