CSharp · Console
using System;
public class Program
{
string[] arrDates = new string[10000];
Int64 regexTime, tryParseTime;
public static void Main()
{
var p = new Program();
p.initialise();
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();
}
public void initialise()
{
Random ryear, rmonth, rdate;
ryear = new Random();
rmonth = new Random();
rdate = new Random();
int y, m, d;
DateTime dt;
for (int i = 0; i < arrDates.Length; i++)
{
y = 0;
m = 0;
d = 0;
while (y < 1850)
{
y = ryear.Next(2050);
}
while (m < 1 || m > 12)
{
m = rmonth.Next(12);
}
while (d < 1 || d > 28)
{
d = rdate.Next(28);
}
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 .....");
st.Start();
int i = 1;
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])$");
//Console.Write(result);
//(string.Format("{0}{1}. {2} is a valid date? = {3}", System.Environment.NewLine, i++, x, System.Text.RegularExpressions.Regex.IsMatch(x, @"^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$"))).Dump();
}
st.Stop();
("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 .......");
st.Start();
DateTime dt;
foreach (string x in arrDates)
{
var result = DateTime.TryParse(x, out dt);
//(string.Format("{0}{1} is a valid date? = {2}", System.Environment.NewLine, x, DateTime.TryParse(x, out dt))).Dump();
}
st.Stop();
("Ended TryParse demo. Elapsed time: " + st.ElapsedMilliseconds).Dump();
return st.ElapsedMilliseconds;
}
}