public bool ValidDate(string vDate) // ++++++++++ Checks to see if a date is valid +++++++
{
vDate = vDate.Trim();
if (vDate == "")
return false;
int Mon, Day, Yr;
DateTime ValDate;
try
{
if (Regex.IsMatch(vDate,@"\d{1,2}[/]\d{1,2}[/](\d{4}|\d{2})") ||
Regex.IsMatch(vDate,@"\d{1,2}[-]\d{1,2}[-](\d{4}|\d{4})")) //looks for a format with 2 /'s or 2 -'s
{
ValDate = Convert.ToDateTime(vDate);
}
else
{
if (vDate.Trim().Length != 8) //Not a readable date format
return false;
if (Convert.ToInt16(vDate.Substring(0, 2)) > 12) //Format yyyymmdd
{
Yr = Convert.ToInt16(vDate.Substring(0, 4));
Mon = Convert.ToInt16(vDate.Substring(4, 2));
Day = Convert.ToInt16(vDate.Substring(6, 2));
return (ValidDate(Mon.ToString() + "/" + Day.ToString() + "/" + Yr.ToString()));
}
else //Format mmddyyyy
{
Mon = Convert.ToInt16(vDate.Substring(0, 2));
Day = Convert.ToInt16(vDate.Substring(2, 2));
Yr = Convert.ToInt16(vDate.Substring(4, 4));
return (ValidDate(Mon.ToString() + "/" + Day.ToString() + "/" + Yr.ToString()));
}
}
}
catch //error is captured if the date cannot be established by C#'s Convert.ToDateTime()
{
return false;
}
return true;
}