public bool IsValidDate(string strDate)
{
if(strDate.Length==0)
return true;
Regex r = new Regex("^([0-9]+)-([0-9]{1,2})-([0-9]{1,2})$");
Match m=r.Match(strDate);
if(m.Success)
{
Group g=m.Groups[1];
int year=int.Parse(g.ToString()); //获得年
if(year< 1 || year>9999)
return false;
g=m.Groups[2];
int month=int.Parse(g.ToString()); //获得月
if(month<1 || month>12)
return false;
g=m.Groups[3];
int day=int.Parse(g.ToString()); //获得日
if(day<1 ||day>DateTime.DaysInMonth(year,month))
return false;
DateTime dt=new DateTime(year,month,day);
if(dt.Year.ToString()!=year.ToString())
return false;
if(dt.Month.ToString()!=month.ToString())
return false;
if(dt.Day.ToString()!=day.ToString())
return false;
return true;
}
else
return false;
}