#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"input: year month day"<<endl;
int year,month,day;
cin>>year>>month>>day;
while(!(year>=1000&&year<=9999))
{
cout<<"输入的年份不正确"<<endl;
exit(1);
}
while(month>12||month<1)
{
cout<<"月份输入有误,请重新输入"<<endl;
exit(1);
}
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
while(day>31||day<1)
{
cout<<"日期输入有误,请重新输入"<<endl;
exit(1);
}
}
if(month==4||month==6||month==9||month==11)
{
while(day>30||day<1)
{
cout<<"日期输入有误,请重新输入"<<endl;
exit(1);
}
}
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(month==2)
{
if(day>29)
{
cout<<"本月是闰月,请从1-29重新输入日期"<<endl;
exit(1);
}
else
{
if(day==29)
{
day=1;
}
else
{
day++;
}
}
}
}
else
{
if(month==2)
{
if(day>28)
{
cout<<"本月是二月,请从1-28重新输入日期"<<endl;
exit(1);
}
else
{
if(day==28)
{
day=1;
}
else
{
day++;
}
}
}
}
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if(day==31)
{
month++;
day=1;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
else
{
day++;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
case 2:
if(day==1)
{
month++;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
else
{
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
case 4:
case 6:
case 9:
case 11:
if(day==30)
{
month++;
day=1;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
else
{
day++;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
case 12:
if(day==31)
{
year++;
month=1;
day=1;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
else
{
day++;
cout<<year<<"-"<<month<<"-"<<day<<endl;
break;
}
}
}
测试用例
1991 6 20
1992 4 30
1993 5 31
2000 2 29
2001 2 28
2002 12 31
2003 3 0
2004 2 30
2005 2 29
2006 6 31
2006 7 32
2007 12 32
2008 00 1
2009 13 23
256 2 23
10000 3 3
!@#¥