此方法定义3个bool变量,年,月,日 各一个,
分别判断 年,月,日是否合法,
若三个bool变量均为真(或均为1)则,输入的年月日合法,
否则假设其中存在任何一个不为真,则不合法。
#include <iostream>
using namespace std;
int main()
{
int year,month,day;
bool jyear,jmonth,jday;
cout<<"please input year:";
cin>>year;
cout<<"please input month:";
cin>>month;
cout<<"please input day:";
cin>>day;
cout<<endl;
if(year>0)
jyear=1;
else
jyear=0;
if(month>=1&&month<=12)
jmonth=1;
else
jmonth=0;
if(month==4||month==6||month==9||month==11)
{
if(day>=1&&day<=30)
jday=1;
else
jday=0;
}
if(month==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(day>=1&&day<=29)
jday=1;
else
jday=0;
}
else
{
if(day>=1&&day<=28)
jday=1;
else
jday=0;
}
}
else
{
if(day>=1&&day<=31)
jday=1;
else
jday=0;
}
if(jyear==1&&jmonth==1&&jday==1)
cout<<"输入的年月日合法。"<<endl;
else
cout<<"输入的年月日不合法。"<<endl;
return 0;
}