题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include<bits/stdc++.h> using namespace std; void NextDay(int &year,int &month,int &day) { // & 出现在定义or形参当中 表示引用的意思 出现在其他位置,表示取地址 // 存储一下 月份和天数的对应关系 int dayOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int isLeap; // 是否是闰年 isLeap = year % 400 == 0 || year % 4 == 0 && year % 100 != 0; if (isLeap) { dayOfMonth[2] = 29; } else { dayOfMonth[2] = 28; } ++day; if (day > dayOfMonth[month]) { day = 1; ++month; } if (month > 12) { month = 1; ++year; } } int main() { int n; scanf("%d",&n); for(int j=0; j<n; ++j) { int year; int month; int day; int next; scanf("%d%d%d%d",&year,&month,&day,&next); int cur_month=month; int cur_day=day; for(int i=next; next>0; next--) { NextDay(year,cur_month,cur_day); } printf("%d-%02d-%02d\n",year,cur_month,cur_day); } return 0; }