1.判断平闰年
Leap:year % 4 == 0 && year % 100 == 0
bool check (int n)
{
if(n%4 ==0 && n %100 ==0)
return true;
else
return false;
}
2.日期合法
Accesiable:
common year - 365
leap year - 366
闰年每四年一次
30 days month :
{4,6,9,11}
31 days month :
{1,3,5,7,8,10,12}
2 month:
leap : 29
common : 28
#include <iostream>
using namespace std;
int month_days[13][2]={{0,0},{31,31},{29,28},{30,30},{31,31},{30,30},{31,31},{30,30}, {31,31},{30,30},{31,31},{30,30},{31,31}};
bool check_leap (int year)
{
if(year % 4 ==0&&year %100 ==0)
return true;
else
return false;
}
bool check_year (int year,int month,int day)
{
int f=0;
if(month>=1&&month<=12)
{
if(check_leap(year))
f=1;
if(day <= month_days [month][f] && day>0)
return true;
else
return false;
}
else
return false;
}
int main ()
{
int year,month,day;
scanf ("%d-%d-%d",&year,&month,&day);
printf("%d",check_year(year,month,day));
return 0;
}
3.提取日期数
*year = n / 10000
*month = n % 10000 / 100
*day = n % 100