/// <summary> /// Число с подписью в нужном падеже /// </summary> /// <param name="number"></param> /// <param name="count1">Подпись для количества 1</param> /// <param name="count2">Подпись для количества 2</param> /// <param name="count10">Подпись для количества 10</param> /// <returns></returns> public static string NumberInCase(object value, string count1, string count2, string count10) { WordInCase word = new WordInCase() { Count1 = count1, Count2 = count2, Count10 = count10 }; int number = Convert.ToInt32(value); return(NumberInCase(number, word)); }
/// <summary> /// Число с подписью в нужном падеже /// </summary> /// <param name="number"></param> /// <param name="word"></param> /// <returns></returns> public static string NumberInCase(int number, WordInCase word) { string text = string.Empty; // Определим последнюю цифру int lastDigit = (number % 10); switch (lastDigit) { case 0: case 5: case 6: case 7: case 8: case 9: { text = word.Count10; break; } case 1: { text = word.Count1; break; } case 2: case 3: case 4: { text = word.Count2; break; } } // Исключение для чисел с 11 до 14 lastDigit = (number % 100); if (10 < lastDigit && lastDigit < 15) { text = word.Count10; } return(string.Format("{0} {1}", number, text)); }