// convert Chinese Year to Integer
        private int ConvertCJKYearToInteger(string yearChsStr)
        {
            var year        = 0;
            var num         = 0;
            int dynastyYear = DateTimeFormatUtil.ParseChineseDynastyYear(yearChsStr,
                                                                         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(yearChsStr);

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

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

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

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

            year = num;

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