判断日期是否合法的函数
作者:
bigbig大萝卜
,
2021-04-02 18:32:22
,
所有人可见
,
阅读 392
//从1月到12月每个月有多少天存到数组中(不考虑闰年,闰年的特殊情况后面考虑)
int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check_valid(int year,int month,int day){
//月份不能等于0也不能大于12
if(month == 0 || month > 12) return false;
//日期不能等于零
if(day == 0)return false;
//日期也不能大于当月的天数
if(month != 2){
//先考虑除2月以外的月份
if(day > days[month]) return false;
}else{
//再考虑2月,leap为1表示是闰年
//闰年:被400整除或被4整除但不被100整除
int leap = year % 400 == 0 && year % 100 != 0 || year % 4 == 0;
if(day > 28 + leap) return false;
}
return true;
}