internal override ParseResult <AnnualDate> CalculateValue(PatternFields usedFields, string text) { // This will set MonthOfYearNumeric if necessary var failure = DetermineMonth(usedFields, text); if (failure != null) { return(failure); } int day = usedFields.HasAny(PatternFields.DayOfMonth) ? DayOfMonth : TemplateValue.Day; // Validate for the year 2000, just like the AnnualDate constructor does. if (day > CalendarSystem.Iso.GetDaysInMonth(2000, MonthOfYearNumeric)) { return(ParseResult <AnnualDate> .DayOfMonthOutOfRangeNoYear(text, day, MonthOfYearNumeric)); } return(ParseResult <AnnualDate> .ForValue(new AnnualDate(MonthOfYearNumeric, day))); }