Esempio n. 1
0
            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);
            }