private ParseResult <AnnualDate>?DetermineMonth(PatternFields usedFields, string text) { switch (usedFields & (PatternFields.MonthOfYearNumeric | PatternFields.MonthOfYearText)) { case PatternFields.MonthOfYearNumeric: // No-op break; case PatternFields.MonthOfYearText: MonthOfYearNumeric = MonthOfYearText; break; case PatternFields.MonthOfYearNumeric | PatternFields.MonthOfYearText: if (MonthOfYearNumeric != MonthOfYearText) { return(ParseResult <AnnualDate> .InconsistentMonthValues(text)); } // No need to change MonthOfYearNumeric - this was just a check break; case 0: MonthOfYearNumeric = TemplateValue.Month; break; } if (MonthOfYearNumeric > CalendarSystem.Iso.GetMonthsInYear(2000)) { return(ParseResult <AnnualDate> .IsoMonthOutOfRange(text, MonthOfYearNumeric)); } return(null); }