I agree with the other answers that it looks like your doing a lot to solve what should be a simple problem. I'd use the British date format from the culture info.
var convertedDay = DateTime.Parse("12/04/2010", new CultureInfo("en-GB").DateTimeFormat);