本篇文章属于《518抽奖软件开发日志》系列文章的一部分。
我在开发《518抽奖软件》的时候,需要判断用户输入的日期是否合法,代码如下。
BOOL Tfuns::is_legalDate(int y, int m, int d)
{
if (y > 9999 || y < MIN_YEAR) return FALSE;
if (m > 12 || m < 1) return FALSE;
if (d > 31 || d < 1) return FALSE;
if (m == 4 || m == 6 || m == 9 || m == 11)
{
if (d > 30) return FALSE;
}
else if (m == 2)
{
if (Tfuns::is_leapYear(y)) {
if (d > 29) return FALSE;
}
else {
if (d > 28) return FALSE;
}
}
return TRUE;
}
BOOL Tfuns::is_leapYear(int year)
{
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
return true;
return false;
}