private static bool TryGetExplicitDayOfMonthSpecification(Queue <Token> unProcessedTokens, out AbstractDayOfMonthSpecification dayOfMonthSpecification) { const String explicitDayOfMonthRegex = @"^\d{1,2}$"; // check if the next token is an explicit day of month specification token if (Regex.IsMatch(unProcessedTokens.Peek().Value, explicitDayOfMonthRegex)) { string dayOfMonthSpecificationString = unProcessedTokens.Dequeue().Value; dayOfMonthSpecification = new ExplicitDayOfMonthSpecification(int.Parse(dayOfMonthSpecificationString)); return(true); } dayOfMonthSpecification = null; return(false); }
public static bool TryParse(Queue <Token> unProcessedTokens, out DayOfYearSpecification?dayOfYearSpecification) { MonthOfYear?monthOfYear; if (MonthOfYearExpression.TryParse(unProcessedTokens, out monthOfYear)) { AbstractDayOfMonthSpecification dayOfMonthSpecification; if (!DayOfMonthSpecificationExpression.TryParse(unProcessedTokens, out dayOfMonthSpecification)) { // default is first day of the month dayOfMonthSpecification = new ExplicitDayOfMonthSpecification(1); } dayOfYearSpecification = new DayOfYearSpecification(monthOfYear.Value, dayOfMonthSpecification); return(true); } dayOfYearSpecification = null; return(false); }