本篇文章属于《518抽奖软件开发日志》系列文章的一部分。

 

我在开发《518抽奖软件》(www.518cj.net)的时候,需要判断用户输入的日期是否合法,代码如下。

 

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;
}