Exemple #1
0
        // convert CJK Year to Integer
        private int ConvertCJKYearToInteger(string yearCJKStr)
        {
            var year        = 0;
            var num         = 0;
            int dynastyYear = DateTimeFormatUtil.ParseDynastyYear(yearCJKStr,
                                                                  this.config.DynastyYearRegex,
                                                                  this.config.DynastyStartYear,
                                                                  this.config.DynastyYearMap,
                                                                  this.config.IntegerExtractor,
                                                                  this.config.NumberParser);

            if (dynastyYear > 0)
            {
                return(dynastyYear);
            }

            var er = this.config.IntegerExtractor.Extract(yearCJKStr);

            if (er.Count != 0)
            {
                if (er[0].Type is Number.Constants.SYS_NUM_INTEGER)
                {
                    num = Convert.ToInt32((double)(this.config.NumberParser.Parse(er[0]).Value ?? 0));
                }
            }

            if (num < 10)
            {
                num = 0;
                foreach (var ch in yearCJKStr)
                {
                    num *= 10;

                    er = this.config.IntegerExtractor.Extract(ch.ToString(CultureInfo.InvariantCulture));

                    if (er.Count != 0)
                    {
                        if (er[0].Type is Number.Constants.SYS_NUM_INTEGER)
                        {
                            num += Convert.ToInt32((double)(this.config.NumberParser.Parse(er[0]).Value ?? 0));
                        }
                    }
                }
            }

            year = num;

            return(year < 10 ? -1 : year);
        }