Exemplo n.º 1
0
        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);
        }