public static bool IsValidDate(string inputDate, out DateTime parsedDate)
{
try
{
string changedDate = string.Empty;
string[] DatePattern = {
"yyyy.mm.dd", "mm/dd/yyyy", "yyyymmdd","mmddyyyy", "mm-dd-yyyy", "yyyy/mm/dd", "yyyy-mm-dd",
"yyyy.m.dd", "m/dd/yyyy", "m-dd-yyyy", "yyyy/m/dd", "yyyy-m-dd",
"yyyy.mm.d", "mm/d/yyyy","mm-d-yyyy", "yyyy/mm/d", "yyyy-mm-d",
"yyyy.m.d", "m/d/yyyy", "m-d-yyyy", "yyyy/m/d", "yyyy-m-d"
};
if (DateTime.TryParseExact(inputDate, DatePattern, null, DateTimeStyles.None, out parsedDate))
{
if (inputDate.IndexOf("-") > 0 || inputDate.IndexOf("/") > 0 || inputDate.IndexOf(".") > 0)
{
// Edge case scenario's like 09/31/2015 or 02/30/2015
DateTime.TryParse(inputDate, null, DateTimeStyles.None, out parsedDate);
if (!DateTime.MinValue.ToShortDateString().Equals(parsedDate.ToShortDateString()))
{
return true;
}
}
else
{
if (Convert.ToInt32(inputDate.Substring(0, 2)) <= 12)
{
changedDate = inputDate.Substring(0, 2) + "/" + inputDate.Substring(2, 2) + "/" + inputDate.Substring(4);
}
else
{
changedDate = inputDate.Substring(4, 2) + "/" + inputDate.Substring(6) + "/" + inputDate.Substring(0,4);
}
return DateTime.TryParse(changedDate, out parsedDate);
}
}
return false;
}
catch
{
parsedDate = DateTime.MinValue;
return false;
}
}
{
try
{
string changedDate = string.Empty;
string[] DatePattern = {
"yyyy.mm.dd", "mm/dd/yyyy", "yyyymmdd","mmddyyyy", "mm-dd-yyyy", "yyyy/mm/dd", "yyyy-mm-dd",
"yyyy.m.dd", "m/dd/yyyy", "m-dd-yyyy", "yyyy/m/dd", "yyyy-m-dd",
"yyyy.mm.d", "mm/d/yyyy","mm-d-yyyy", "yyyy/mm/d", "yyyy-mm-d",
"yyyy.m.d", "m/d/yyyy", "m-d-yyyy", "yyyy/m/d", "yyyy-m-d"
};
if (DateTime.TryParseExact(inputDate, DatePattern, null, DateTimeStyles.None, out parsedDate))
{
if (inputDate.IndexOf("-") > 0 || inputDate.IndexOf("/") > 0 || inputDate.IndexOf(".") > 0)
{
// Edge case scenario's like 09/31/2015 or 02/30/2015
DateTime.TryParse(inputDate, null, DateTimeStyles.None, out parsedDate);
if (!DateTime.MinValue.ToShortDateString().Equals(parsedDate.ToShortDateString()))
{
return true;
}
}
else
{
if (Convert.ToInt32(inputDate.Substring(0, 2)) <= 12)
{
changedDate = inputDate.Substring(0, 2) + "/" + inputDate.Substring(2, 2) + "/" + inputDate.Substring(4);
}
else
{
changedDate = inputDate.Substring(4, 2) + "/" + inputDate.Substring(6) + "/" + inputDate.Substring(0,4);
}
return DateTime.TryParse(changedDate, out parsedDate);
}
}
return false;
}
catch
{
parsedDate = DateTime.MinValue;
return false;
}
}
No comments:
Post a Comment