示例#1
0
        /// <summary>
        /// Convert numver to string
        /// </summary>
        /// <param name="language"></param>
        /// <param name="number"></param>
        /// <returns></returns>
        private string CalculateStringNumber(Language language, int number)
        {
            string          numberStr    = String.Empty;
            NumberSringView internalView = NumberSringView.Default;

            if (number < billion)
            {
                numberStr = CalculateStringMillions(language, number);
            }
            else
            {
                int billions = number - number % 1000000000;
                int millions = number - billions;
                billions = billions / billion;
                if (language == Language.Ukrainian && billions > 1)
                {
                    internalView = NumberSringView.Plural;
                }
                numberStr = CalculateStringHundreds(language, billions, CameFrom.Billions) + " " +
                            convertNumbDictionary.ConvertDictionary[billion].langDictionary[language].NumFormsDictionary[internalView] + " " +
                            CalculateStringMillions(language, millions);
            }

            return(numberStr);
        }
示例#2
0
        /// <summary>
        /// Convert number that is less Billion to string
        /// </summary>
        /// <param name="language"></param>
        /// <param name="number"></param>
        /// <param name="cameFrom"></param>
        /// <returns></returns>
        private string CalculateStringMillions(Language language, int number, CameFrom cameFrom = CameFrom.Millions)
        {
            string          numberStr    = String.Empty;
            NumberSringView internalView = NumberSringView.Default;

            if (number < million)
            {
                numberStr = CalculateStringThousands(language, number);
            }
            else if (number < billion)
            {
                int millions  = number - number % million;
                int thousands = number - millions;
                millions = millions / million;

                if (language == Language.Ukrainian)
                {
                    if (millions.ToString().EndsWith("1") && !millions.ToString().EndsWith("11"))
                    {
                        internalView = NumberSringView.Single;
                    }
                    else if ((millions.ToString().EndsWith("2") || millions.ToString().EndsWith("3") || millions.ToString().EndsWith("4")) &&
                             !(millions.ToString().EndsWith("12") || millions.ToString().EndsWith("13") || millions.ToString().EndsWith("14")))
                    {
                        internalView = NumberSringView.Plural;
                    }
                }
                numberStr = CalculateStringHundreds(language, millions, CameFrom.Millions) + " " +
                            convertNumbDictionary.ConvertDictionary[million].langDictionary[language].NumFormsDictionary[internalView] + " " +
                            CalculateStringThousands(language, thousands);
            }
            return(numberStr);
        }
示例#3
0
        /// <summary>
        /// Convert number that is less million to string
        /// </summary>
        /// <param name="language"></param>
        /// <param name="number"></param>
        /// <param name="cameFrom"></param>
        /// <returns></returns>
        private string CalculateStringThousands(Language language, int number, CameFrom cameFrom = CameFrom.Thousans)
        {
            string          numberStr    = String.Empty;
            NumberSringView internalView = NumberSringView.Default;

            if (number < 1000)
            {
                numberStr = CalculateStringHundreds(language, number);
            }
            else if (number < million)
            {
                int thousands = number - number % 1000;
                int hundreds  = number - thousands;
                thousands = thousands / 1000;

                if (language == Language.Ukrainian)
                {
                    if (thousands.ToString().EndsWith("1") && !thousands.ToString().EndsWith("11"))
                    {
                        internalView = NumberSringView.Single;
                    }
                    else if ((thousands.ToString().EndsWith("2") || thousands.ToString().EndsWith("3") || thousands.ToString().EndsWith("4")) &&
                             !(thousands.ToString().EndsWith("12") || thousands.ToString().EndsWith("13") || thousands.ToString().EndsWith("14")))
                    {
                        internalView = NumberSringView.Plural;
                    }
                }

                numberStr = CalculateStringHundreds(language, thousands) + " " +
                            convertNumbDictionary.ConvertDictionary[1000].langDictionary[language].NumFormsDictionary[internalView] + " " +
                            CalculateStringHundreds(language, hundreds);
            }
            return(numberStr);
        }
示例#4
0
        /// <summary>
        /// Convert number that is less 1000 to string
        /// </summary>
        /// <param name="language"></param>
        /// <param name="number"></param>
        /// <param name="cameFrom"></param>
        /// <returns></returns>
        private string CalculateStringHundreds(Language language, int number, CameFrom cameFrom = CameFrom.Hundreds)
        {
            NumberSringView view      = NumberSringView.Default;
            string          numberStr = String.Empty;

            if (number <= 100)
            {
                numberStr = CalculateStringDozens(language, number, cameFrom);
            }
            else
            {
                int hundreds = number - number % 100;
                numberStr = convertNumbDictionary.ConvertDictionary[hundreds].langDictionary[language].NumFormsDictionary[view] + " " +
                            CalculateStringDozens(language, number - hundreds, cameFrom);
            }

            return(numberStr);
        }
示例#5
0
        /// <summary>
        /// Convert number that is less 100 to string
        /// </summary>
        /// <param name="language"></param>
        /// <param name="number"></param>
        /// <param name="cameFrom"></param>
        /// <returns></returns>
        private string CalculateStringDozens(Language language, int number, CameFrom cameFrom = CameFrom.Dozens)
        {
            NumberSringView internalView       = NumberSringView.Default;
            NumberSringView intsInternalView   = NumberSringView.Default;
            NumberSringView dozensInternalView = NumberSringView.Default;
            String          internalSeparator  = " ";
            string          numberStr          = String.Empty;

            if (number <= 20)
            {
                if (language == Language.Ukrainian && (cameFrom == CameFrom.Millions || cameFrom == CameFrom.Billions))
                {
                    if (number == 1 || number == 2)
                    {
                        internalView = NumberSringView.Other;
                    }
                }
                numberStr = convertNumbDictionary.ConvertDictionary[number].langDictionary[language].NumFormsDictionary[internalView];
            }
            else if (number <= 100)
            {
                int dozrens = number - (number % 10);
                int ints    = (number % 10);
                if (language == Language.English && ints != 0)
                {
                    dozensInternalView = NumberSringView.Plural;
                    internalSeparator  = String.Empty;
                }
                if (language == Language.Ukrainian && (cameFrom == CameFrom.Millions || cameFrom == CameFrom.Billions))
                {
                    if (ints == 1 || ints == 2)
                    {
                        intsInternalView = NumberSringView.Other;
                    }
                }

                numberStr = convertNumbDictionary.ConvertDictionary[dozrens].langDictionary[language].NumFormsDictionary[dozensInternalView] + internalSeparator +
                            convertNumbDictionary.ConvertDictionary[ints].langDictionary[language].NumFormsDictionary[intsInternalView];
            }
            return(numberStr);
        }
 public void Add(NumberSringView view, string value)
 {
     NumFormsDictionary.Add(view, value);
 }