时间格式验证
#region//时间格式验证
public static bool IsDateTime(string strValue)
{
if (null == strValue)
{
return false;
}
string regexDate = @"[1-2]{1}[0-9]{3}((-|\/){1}(([0]?[1-9]{1})|(1[0-2]{1}))((-|\/){1}((([0]?[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1})))( (([0-1]{1}[0-9]{1})|2[0-3]{1}):([0-5]{1}[0-9]{1}):([0-5]{1}[0-9]{1})(\.[0-9]{3})?)?)?)?$";
if (Regex.IsMatch(strValue, regexDate))
{
//以下各月份日期验证,保证验证的完整性
int _IndexY = -1;
int _IndexM = -1;
int _IndexD = -1;
if (-1 != (_IndexY = strValue.IndexOf("-")))
{
_IndexM = strValue.IndexOf("-", _IndexY + 1);
_IndexD = strValue.IndexOf(":");
}
else
{
_IndexY = strValue.IndexOf("/");
_IndexM = strValue.IndexOf("/", _IndexY + 1);
_IndexD = strValue.IndexOf(":");
}
//不包含日期部分,直接返回true
if (-1 == _IndexM)
return true;
if (-1 == _IndexD)
{
_IndexD = strValue.Length + 3;
}
int iYear = Convert.ToInt32(strValue.Substring(0, _IndexY));
int iMonth = Convert.ToInt32(strValue.Substring(_IndexY + 1, _IndexM - _IndexY - 1));
int iDate = Convert.ToInt32(strValue.Substring(_IndexM + 1, _IndexD - _IndexM - 4));
//判断月份日期
if ((iMonth < 8 && 1 == iMonth % 2) || (iMonth > 8 && 0 == iMonth % 2))
{
if (iDate < 32)
return true;
}
else
{
if (iMonth != 2)
{
if (iDate < 31)
return true;
}
else
{
//闰年
if ((0 == iYear % 400) || (0 == iYear % 4 && 0 < iYear % 100))
{
if (iDate < 30)
return true;
}
else
{
if (iDate < 29)
return true;
}
}
}
}
return false;
}
#endregion
public static bool IsDateTime(string strValue)
{
if (null == strValue)
{
return false;
}
string regexDate = @"[1-2]{1}[0-9]{3}((-|\/){1}(([0]?[1-9]{1})|(1[0-2]{1}))((-|\/){1}((([0]?[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1})))( (([0-1]{1}[0-9]{1})|2[0-3]{1}):([0-5]{1}[0-9]{1}):([0-5]{1}[0-9]{1})(\.[0-9]{3})?)?)?)?$";
if (Regex.IsMatch(strValue, regexDate))
{
//以下各月份日期验证,保证验证的完整性
int _IndexY = -1;
int _IndexM = -1;
int _IndexD = -1;
if (-1 != (_IndexY = strValue.IndexOf("-")))
{
_IndexM = strValue.IndexOf("-", _IndexY + 1);
_IndexD = strValue.IndexOf(":");
}
else
{
_IndexY = strValue.IndexOf("/");
_IndexM = strValue.IndexOf("/", _IndexY + 1);
_IndexD = strValue.IndexOf(":");
}
//不包含日期部分,直接返回true
if (-1 == _IndexM)
return true;
if (-1 == _IndexD)
{
_IndexD = strValue.Length + 3;
}
int iYear = Convert.ToInt32(strValue.Substring(0, _IndexY));
int iMonth = Convert.ToInt32(strValue.Substring(_IndexY + 1, _IndexM - _IndexY - 1));
int iDate = Convert.ToInt32(strValue.Substring(_IndexM + 1, _IndexD - _IndexM - 4));
//判断月份日期
if ((iMonth < 8 && 1 == iMonth % 2) || (iMonth > 8 && 0 == iMonth % 2))
{
if (iDate < 32)
return true;
}
else
{
if (iMonth != 2)
{
if (iDate < 31)
return true;
}
else
{
//闰年
if ((0 == iYear % 400) || (0 == iYear % 4 && 0 < iYear % 100))
{
if (iDate < 30)
return true;
}
else
{
if (iDate < 29)
return true;
}
}
}
}
return false;
}
#endregion