判断日期合法性
作者:
今天你复盘了嘛
,
2024-02-23 08:51:12
,
所有人可见
,
阅读 57
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //每月天数
bool check(int year,int month,int day){
//月份
if(month<0 or month>=13) return false;
//天数 先不考虑二月
if(month!=2 and (day<=0 or day>days[month])) return false;
//二月份
if(month==2){ //400的整数倍 或者4的整数倍 且不是100的整数倍
int leap = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
if (day > days[month] + leap ||day<=0) return false;
}
// if (month == 0 || month > 12) return false;
// if(((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))) days[2] = 29;
// if (day > days[month] || day <= 0) return false;
// days[2] = 28;//是闰年改为28,不是也不影响原来的值。
return true;
}