public static DateTime GetTime(string[] p, DateTime? def = null)
{
DateTime outt = Convert.ToDateTime("0:00");
if (def != null) outt = (DateTime)def;
for (int x = 0; x < p.Length; x++)
{
string r = p[x];
if (Regex.IsMatch(r, @"^((0?[1-9]|1[012])(:[0-5]\d){0,2}((\ )?[AP]M))$|^([1-9]|[01]\d|2[0-3])(:[0-5]\d){0,2}$", RegexOptions.IgnoreCase))
{
DateTime z;
if (DateTime.TryParse(r, out z))
{
outt = z;
break;
}
}
}
return outt;
}