题目描述
输入一个日期(年、月、日)和一个正整数n,输出在指定日期的n天后的新日期
输入描述
第一行:三个正整数,分别是年、月、日
第二行:一个正整数n,代表天数
输出描述
共一行:输出在指定日期的n天后的新日期
思路
模拟时间变化,一天一天增加,判断是否进入下一年、下一月
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
//月份天数
int m[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
//变量初始化
int year,month,day,a;
cin >> year >> month >> day >> a;
//闰年判断
if((year%4 == 0 && year%100 != 0) || year%400 == 0){
m[2] = 29;
}else{
m[2] = 28;
}
//循环
for(int i=0;i<a;i++){
day++;
//本月结束
if(m[month] < day){
day = 1;
month++;
//本年结束
if(12 < month){
//新的一年
month = 1;
year++;
//闰年判断
if((year%4 == 0 && year%100 != 0) || year%400 == 0){
m[2] = 29;
}else{
m[2] = 28;
}
}
}
}
cout << year << ' ' << month << ' ' << day;
return 0;
}