日期合法性
include<stdio.h>
int main()
{
int year;
int month;
int day;
//以年-月-日的形式输入日期
scanf("%d-%d-%d",&year,&month,&day);
//先判断月份是否属于1~12,是则进行下一步,否输出NO
if(1<=month && month<=12)
{
//判断日期为31天的月份
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{
if(day>=1 && day<=31)
{
printf("YES");
}else
{
printf("NO");
}
//判断日期为30天的月份
}else if(month==4 || month==6 || month==9 || month==11)
{
if(day>=1 && day<=30)
{
printf("YES");
}else
{
printf("NO");
}
//判断闰年和平年,闰年2月29天,平年2月28天
//闰年的判断法
//非整百年,能被 44 整除的为闰年。
//整百年,能被 400400 整除的是闰年。
}else if(year%100!=0 && year%4==0 || year%400==0)
{
if(day>=1 && day<=29)
{
printf("YES");
}
}else if(day>=1 && day<=28)
{
printf("YES");
}else
{
printf("NO");
}
}else
{
printf("NO");
}
return 0;
}