描述
求明天的明天的明天是哪天
输入
三个正整数a、b、c,表示今天是a年b月c日,可以确保该天是合法存在的。
输出
三个数字x y z,表示输入时间的三天以后是x年y月z日。每个数字之间用一个空格隔开,最后不要换行。
样例输入
2017 9 25
样例输出
2017 9 28
#include<iostream>
using namespace std;
int main()
{
int a, b, c,x,y,z;
cin >> a >> b >> c;
if (a % 4 == 0)
{
if (a % 100 == 0 && a % 400 != 0)//不是闰年
{
if (b == 4 || b == 6 || b == 9 || b == 11)//不是闰年的小月份
{
if (c > 27)//涉及月份增加
{
x = a;
z = c + 3 - 30;
y = b + 1;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
else if (b == 2)//不是闰年的2月(28天)
{
if (c> 25)//涉及月份增加
{
x = a;
z = c + 3 - 28;
y = 3;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = 2;
}
}
else//不是闰年的大月(31天)
{
if (c > 28)//涉及月份增加
{
x = a;
z = c + 3 - 31;
y = b + 1;
if (b ==12)//涉及年份增加
{
x = a + 1;
y = 1;
z = c + 3 - 31;
}
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
}
else if (a % 3200 == 0)//不是闰年
{
if (b == 4 || b == 6 || b == 9 || b == 11)//不是闰年的小月份
{
if (c > 27)//涉及月份增加
{
x = a;
z = c + 3 - 30;
y = b + 1;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
else if (b == 2)//不是闰年的2月
{
if (c> 25)//涉及月份增加
{
x = a;
z = c + 3 - 28;
y = 3;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = 2;
}
}
else//不是闰年的大月
{
if (c > 28)//涉及月份增加
{
x = a;
z = c + 3 - 31;
y = b + 1;
if (b==12)//涉及年份增加
{
x = a + 1;
y = 1;
z = c + 3 - 31;
}
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
}
else//闰年
{
if (b == 4 || b == 6 || b == 9 || b == 11)//闰年的小月份
{
if (c > 27)//涉及月份增加
{
x = a;
z = c + 3 - 30;
y = b + 1;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
else if(b==2)//闰年的2月份
{
if(c>26)//涉及月份增加
{
x = a;
z = c + 3 - 29;
y= 3;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = 2;
}
}
else//闰年的大月
{
if (c > 28)//涉及月份增加
{
x = a;
z = c + 3 - 31;
y = b + 1;
if (b ==12)//涉及年份增加
{
x = a + 1;
y = 1;
z = c + 3 - 31;
}
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
}
}
else//不是闰年
{
if (b == 4 || b == 6 || b == 9 || b == 11)//不是闰年的小月份
{
if (c > 27)//涉及月份增加
{
x = a;
z = c + 3 - 30;
y = b + 1;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
else if (b == 2)//不是闰年的2月
{
if ( c> 25)//涉及月份增加
{
x = a;
z = c + 3 - 28;
y = 3;
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = 2;
}
}
else//不是闰年的大月
{
if (c > 28)//涉及月份增加
{
x = a;
z = c + 3 - 31;
y = b + 1;
if (b ==12)//涉及年份增加
{
x = a + 1;
y = 1;
z = c + 3 - 31;
}
}
else//不涉及月份增加
{
x = a;
z = c + 3;
y = b;
}
}
}
cout << x << " " << y << " " << z;
return 0;
}