private ParseResult <LocalDate> DetermineMonth(PatternFields usedFields) { 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 <LocalDate> .InconsistentMonthValues); } // No need to change MonthOfYearNumeric - this was just a check break; case 0: MonthOfYearNumeric = templateValue.Month; break; } if (MonthOfYearNumeric > Calendar.GetMaxMonth(Year)) { return(ParseResult <LocalDate> .MonthOutOfRange(MonthOfYearNumeric, Year)); } return(null); }