判断日期问题

#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,所以还是不要用这个,这个只能判断不是数字的,它就转化为最小日期格式。

posted @ 2008-08-04 20:54  kokyu  阅读(296)  评论(0编辑  收藏  举报