string[] arrDates = new string[10000];
Int64 regexTime, tryParseTime;
public static void Main()
p.regexTime = p.RunRegexDemo();
p.tryParseTime = p.RunDateTimeParseDemo();
string.Format("Tests concluded. RegEx.IsMatch took: {0}ms, DateTime.TryParse took: {1}", p.regexTime, p.tryParseTime).Dump();
Random ryear, rmonth, rdate;
for (int i = 0; i < arrDates.Length; i++)
dt = new DateTime(y, m, d);
arrDates[i] = dt.ToString("yyyy-MM-dd");
public Int64 RunRegexDemo()
System.Diagnostics.Stopwatch st = new System.Diagnostics.Stopwatch();
Console.WriteLine("Starting Regex demo .....");
foreach (string x in arrDates)
var result = System.Text.RegularExpressions.Regex.IsMatch(x, @"^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$");
("Ended RegEx demo. Elapsed time: " + st.ElapsedMilliseconds).Dump();
return st.ElapsedMilliseconds;
public Int64 RunDateTimeParseDemo()
var st = new System.Diagnostics.Stopwatch();
Console.WriteLine("Starting DateTime.Parse demo .......");
foreach (string x in arrDates)
var result = DateTime.TryParse(x, out dt);
("Ended TryParse demo. Elapsed time: " + st.ElapsedMilliseconds).Dump();
return st.ElapsedMilliseconds;