public string BuildParse(string parse, DateTime now, DateParserConfig config = null) { var behavior = new CalculatedDatesBehavior(); var result = behavior.Parse(parse, now, config); return(result.HasValue ? result.Value.ToString("yyyy-MM-dd HH:mm:ss") : null); }
public DateTime?Parse(string namedDate, DateTime now, DateParserConfig config) { switch (namedDate.ToLower()) { case "jan": case "january": return(now.NextMonth(Month.January)); case "feb": case "february": return(now.NextMonth(Month.Febuary)); case "mar": case "march": return(now.NextMonth(Month.March)); case "apr": case "april": return(now.NextMonth(Month.April)); case "may": return(now.NextMonth(Month.May)); case "jun": case "june": return(now.NextMonth(Month.June)); case "jul": case "july": return(now.NextMonth(Month.July)); case "aug": case "august": return(now.NextMonth(Month.August)); case "sep": case "september": return(now.NextMonth(Month.September)); case "oct": case "october": return(now.NextMonth(Month.October)); case "nov": case "november": return(now.NextMonth(Month.November)); case "dec": case "december": return(now.NextMonth(Month.December)); default: return(null); } }
public DateTime?Parse(string namedDate, DateTime now, DateParserConfig config) { switch (namedDate.ToLower()) { case "later": case "someday": return(new DateTime(2038, 01, 18, 0, 0, 0)); default: return(null); } }
public DateTime?Parse(string namedDate, DateTime now, DateParserConfig config) { switch (namedDate.ToLower()) { case "socy": return(now.StartOfYear()); case "soy": return(now.AddYears(1).StartOfYear()); case "eocy": case "eoy": return(now.EndOfYear()); case "socq": return(now.StartOfQuarter()); case "eocq": case "eoq": return(now.EndOfQuarter()); case "soq": return(now.AddMonths(4).StartOfQuarter()); case "socm": return(now.StartOfMonth()); case "som": return(now.AddMonths(1).StartOfMonth()); case "eocm": case "eom": return(now.EndOfMonth()); default: return(null); } }
public DateTime?Parse(string namedDate, DateTime now, DateParserConfig config) { switch (namedDate.ToLower()) { case "socw": return(now.NextDayOfWeek(config.StartOfWeek).AddDays(-7)); case "sow": return(now.NextDayOfWeek(config.StartOfWeek)); case "soww": return(now.NextDayOfWeek(config.StartOfWorkWeek)); case "eoww": return(now.NextDayOfWeek(config.EndOfWorkWeek).EndOfDay()); case "eocw": case "eow": return(now.NextDayOfWeek(config.EndOfWeek).EndOfDay()); case "sod": case "today": return(now.StartOfDay()); case "eod": return(now.EndOfDay()); case "yesterday": return(now.AddDays(-1).StartOfDay()); case "now": return(now); default: return(null); } }
public DateTime?Parse(string namedDate, DateTime now, DateParserConfig config) { var ordinalRegex = new Regex("^([1-3]*[0-9])(th|nd|rd|st)*$"); var matches = ordinalRegex.Match(namedDate.ToLower()); if (!matches.Success) { return(null); } var dayOrdinal = int.Parse(matches.Groups[1].Value); if (dayOrdinal <= now.Day) { now = now.AddMonths(1); } if (dayOrdinal > now.DaysInMonth()) { throw new Exception($"Month does not contain {dayOrdinal} days"); } return(new DateTime(now.Year, now.Month, dayOrdinal)); }
public DateTime?Parse(string namedDate, DateTime now, DateParserConfig config) { switch (namedDate.ToLower()) { case "mon": case "monday": return(now.NextDayOfWeek(DayOfWeek.Monday)); case "tue": case "tuesday": return(now.NextDayOfWeek(DayOfWeek.Tuesday)); case "wed": case "wednesday": return(now.NextDayOfWeek(DayOfWeek.Wednesday)); case "thu": case "thursday": return(now.NextDayOfWeek(DayOfWeek.Thursday)); case "fri": case "friday": return(now.NextDayOfWeek(DayOfWeek.Friday)); case "sat": case "saturday": return(now.NextDayOfWeek(DayOfWeek.Saturday)); case "sun": case "sunday": return(now.NextDayOfWeek(DayOfWeek.Sunday)); default: return(null); } }
public DateParser(IEnumerable <IDateParserBehavior> dateParserBehaviors, DateParserConfig config) { _config = config; _behaviors = dateParserBehaviors; }