public static bool TryParse(Queue <Token> unProcessedTokens, out Date date)
        {
            try
            {
                AbstractYearSpecification yearSpecification;
                if (YearSpecificationExpression.TryParse(unProcessedTokens, out yearSpecification))
                {
                    DayOfYearSpecification?dayOfYearSpecification;
                    if (!DayOfYearSpecificationExpression.TryParse(unProcessedTokens, out dayOfYearSpecification))
                    {
                        // default is first day of first month
                        dayOfYearSpecification = new DayOfYearSpecification(MonthOfYear.January,
                                                                            new ExplicitDayOfMonthSpecification(1));
                    }
                    date = new Date(yearSpecification.ToYear(), dayOfYearSpecification.Value);
                    return(true);
                }
            }
            catch (Exception e)
            {
                throw new Exception("Unable to parse Date specification expression", e);
            }

            date = 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);
        }
示例#3
0
 public Date(int year, DayOfYearSpecification dayOfYearSpecification)
 {
     Year        = year;
     MonthOfYear = dayOfYearSpecification.MonthOfYear;
     DayOfMonth  = dayOfYearSpecification.DayOfMonthSpecification.ToDayOfMonth(year, MonthOfYear);
 }