public static bool TryParse(string value, out Undated result) { if (String.IsNullOrWhiteSpace(value) || value.Equals("undated", StringComparison.OrdinalIgnoreCase)) { result = new Undated(); return(true); } result = null; return(false); }
public static Date ParseOne(string value) { var v = value.Trim(' ', '[', ']') .Replace(".", " ") .Replace(" ", " ") .Replace("Sept", "Sep") .Replace("Apl", "Apr") .Replace("Aprl", "Apr"); if (Undated.TryParse(v, out var u)) { return(u); } if (DateRange.TryParse(v, out var dr)) { return(dr); } if (YearRange.TryParse(v, out var yrr)) { return(yrr); } if (Year.TryParse(v, out var yr)) { return(yr); } if (Day.TryParse(v, out var dt)) { return(dt); } return(new Unparsed(value)); }