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);
            }