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