一种简单的算法来校验时间参数的合法性【原创】
我们常常会遇到和日期和时间有关的功能,因此需要对日期和时间进行校验,以确定日期和时间是符合现实标准的,本段代码基于公历+24小时制进行校验,具体算法如下:
UINT8 Time_Verify(UINT8 *Data) //检查时间的合法性
{
if ((month == 0) || (month > 12) || (day == 0) || (hour > 24) || (minte > 59) || (second > 59)) //数值非法
{
return 0;
}
switch (month) //日数是否超限
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: if (day > 31) return 0;break; //一个月31天
case 4:
case 6:
case 9:
case 11: if (day > 30) return 0;break; //一个月30天
case 2:
if (((year % 4) == 0 && (year % 100) != 0) || ((year % 400) == 0)) //是否是闰年
{
if (day > 29) //闰年2月29天
return 0;
break;
}
else
{
if (day > 28) //非闰年2月28天
return 0;
break;
}
}
return 1;
}