//给定一个日期求下一天日期,例如1999年4月30日下一天为1999年5月1日
#include<iostream>
#include<cstring>
using namespace std;
//void Nextday(int y,int m,int d);
int main()
{
int year,month,day;
while(1)
{
cout<<"输入年月日:";
cin>>year>>month>>day;
if(month>12)
{
cout<<"不可能"<<endl;
continue;
}
int newday=day,newyear=year,newmonth=month;
if((month==4||month==6||month==9||month==11))
{
if(day==30)
{
newday=1;
newmonth=month+1;
}
else if(day>30)
{
printf("不可能\n");
continue;
}
else
{
newday=day+1;
}
//printf("date %d 年%d 月 %d日 的下一天是%d %d %d\n",year,month,day);
}
else if((month==1||month==3||month==5||month==7||month==8||month==12))
{
if(day==31)
{
newday=1;
newmonth=month+1;
}
else if(day>31)
{
printf("不可能\n");
continue;
}
else
{
newday=day+1;
}
if(newmonth==13)
{
newmonth=1;
newyear=year+1;
}
//printf("date %d 年%d 月 %d日 的下一天是%d %d %d\n",year,month,day,year,newmonth,newday);
}
else if(month==2)
{
if(day>29)
{
printf("不可能\n");
continue;
}
else if(day==28)
{
if(year%4==0&&year%100!=0||year%400==0)
newday=day+1;
else
{
newday=1;
newmonth=month+1;
}
}
else if(day==29)
{
if(year%4==0&&year%100!=0||year%400==0)
{
newday=1;
newmonth=month+1;
}
else
{
printf("不可能\n");
continue;
}
}
else
{
newday=day+1;
}
}
printf("date: %d 年%d 月 %d日 的下一天是%d 年%d 月%d 日\n",year,month,day,newyear,newmonth,newday);
}
return 0;
}