title: Recommended way of parsing dates when presented in a variety of formats
body: <p>I have a collection of dates as strings entered by users over a period of time. Since these came from humans with little or no validation., the formats entered for the dates varies widely. Below are some examples (the leading numbers are for reference only):</p>
  
  <ol>
  <li>20th, 21st August 1897</li>
  <li>31st May, 1st June 1909</li>
  <li>29th January 2007</li>
  <li>10th, 11th, 12th May 1954</li>
  <li>26th, 27th, 28th, 29th, 30th March 2006</li>
  <li>27th, 28th, 29th, 30th November, 1st December 2006</li>
  </ol>
  
  <p>I would like to parse these dates in c# to end up with sets of DateTime objects, with one DateTime object per day. So (1) above would result in 2 DateTime objects and (6) would result in 5 DateTime objects.</p>