Function NFormat | Склоняем слова после числительного

NozmaD

Администратор
Команда форума
Администратор
Сообщения
166
Баллы
208
Современный игрок любит, когда уделяют особое внимание мелким деталям, что позволяет предоставить информацию в более удобочитаемой и воспринимаемой форме. Такие фразы как «осталось 2 дней» ужасно раздражают такого игрока. Каждое нормальное приложение должно уметь склонять существительные после числительных.

Далее хочу представить решение такой задачи на C#:
C#:
public class Functions
{
    /// <summary>
    /// Возвращает слова в падеже, зависимом от заданного числа
    /// </summary>
    /// <param name="number">Число от которого зависит выбранное слово</param>
    /// <param name="f1">Именительный падеж слова. Например "час"</param>
    /// <param name="f2">Родительный падеж слова. Например "часа"</param>
    /// <param name="f5">Множественное число слова. Например "часов"</param>
    /// <returns>Нужное склонение существительного</returns>

    public static string NFormat(int number, string f1, string f2, string f5)
    {
        if ( number % 100 > 5 && number % 100 < 21 ) return f5;
        if ( number % 10 < 1 || number % 10 > 4 ) return f5;
        if ( number % 10 == 1) return f1;
        return f2;
    }
}
Все очень просто — передаем в метод число от которого зависит склонение, и формы слова. Пример использования:
C#:
Console.WriteLine($"0 {Functions.NFormat(0, "день", "дня", "дней")}");
Console.WriteLine($"1 {Functions.NFormat(1, "день", "дня", "дней")}");
Console.WriteLine($"2 {Functions.NFormat(2, "день", "дня", "дней")}");
Результат выполнения:
0 дней
1 день
2 дня
 
Автор
NozmaD
Автор темы Название темы Категория Ответов Дата темы
NozmaD Ключевые слова C# Статьи 0
Название темы

Верх