题解 | #日期累加#
日期累加
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")
查看5道真题和解析