判断日期问题
#region 日期验证(YYYY-MM-DD)
/// <summary>
/// 日期验证(YYYY-MM-DD)
/// </summary>
/// <param name= "InputStr "> 要验证的字符 </param>
/// <returns> </returns>
public static bool ValidateDataTime(string InputStr)
{
if( InputStr != " " )
{
if (Regex.IsMatch(InputStr.Trim( ' '),@ "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$ "))
return true ;
else
return false ;
}
return false ;
}
#endregion
调用:ValidateDataTime(TextBox1.Text)
---------------------------------------
还有一种网上说一个函数也可以判断。
无论winform还是webform,都有日期控件,那是最好的选择
如果一定不用
那么判断是否符合一定格式用正则表达式,需说明符合哪种格式
判断是否能转换为有效的日期用DateTime.TryParse
DateTime dt;
DateTime.TryParse(textBox1.Text, out dt);
if (dt != DateTime.MinValue)
{
MessageBox.Show(dt.ToString());
}
else
{
MessageBox.Show( "不是有效的日期 ");
}
结构我发现他不能判断是否是合格的日期格式,比如我写了3.023,结构dt成为0023-3-1,所以还是不要用这个,这个只能判断不是数字的,它就转化为最小日期格式。