using System.Globalization;
using System.Threading.Tasks;
using System.Collections.Generic;
public static DateTime ParseDate(string input)
if (DateTime.TryParseExact(input, "yyyy-MM-dd", CultureInfo.CurrentCulture, DateTimeStyles.None, out result)) return result;
if (DateTime.TryParseExact(input, "dd-MM-yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, out result)) return result;
throw new FormatException();
public static void Main()
string[] tests = new string[] { "2018-06-29", "29-06-2018","Invalid" };
var result = ParseDate(t);
Console.WriteLine( "Year: {0} Month: {1} Day: {2}", result.Year, result.Month, result.Day );