C++输出昨天和明天
输入一个日期,计算这个日期前一天和后一天的日期。
输入:
输入三个整数 y,m,d 分别表示年月日 (日期必合法)。
输出:
第一行输出三个用空格分隔的整数,表示前一天的年月日。
第二行输出三个用空格分隔的整数,表示后一天的年月日。
样例输入
1900 2 28
样例输出
1900 2 27
1900 3 1
#include<iostream>
using namespace std;
int fac(int n);
int main(){
int year,month,day;
int m[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//定义数组存储每个月的天数
cin>>year>>month>>day;
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){//判断是否是润年
m[1] = 29; //是闰年则二月份为29天
}
if(day - 1 == 0){ //判断前一天的特殊情况
if(month - 1 == 0){//若今天是1月1号
year--;
cout<<year<<" "<<12<<" "<<m[11]<<endl;
year++;
}
else
cout<<year<<" "<<month-1<<" "<<m[month-2]<<endl;
}
else
cout<<year<<" "<<month<<" "<<day - 1<<endl;
if(day == m[month -1]){ //判断后一天的特殊情况
if(month == 12){//若今天是12月31号
year++;
cout<<year<<" "<<1<<" "<<1<<endl;
}
else
cout<<year<<" "<<month + 1<<" "<<1<<endl;
}
else
cout<<year<<" "<<month<<" "<<day + 1<<endl;
return 0;
}