Search
Write a publication
Pull to refresh

Согласование числительного и существительного

Были времена, когда сайты делали по принципу «лишь бы работал». Но на сегодняшний день Интернет стал гораздо более требователен не только к сервису, но и к удобству и его использования. Одни и те же сервисы присутствуют на множестве конкурирующих сайтов. В то время как качество сервисов часто почти одинаковое, сайты борются за аудиторию в первую очередь удобным и красивым представлением сервиса.
От этого краткого философского вступления перейду к сугубо практической части — простому методу склонения слов по числам, который придает сайту «гладкости». Хватит отображать на своих страницах фразы типа «22 слон» и «91 копыт». Давайте склонять правильно! Метод ниже поможет легко это сделать (.NET):


public static string FormatCount(int count, string str1, string str234, string strMore)
{
int b = count % 100;
if (b > 4 && b < 21) return strMore;
int a = count % 10;
return ( a == 1? str1: (a == 2 || a == 3 || a == 4)? str234: strMore);
}

Если дополнить его методом:

public static string FormatCountTemplate(int count, string str1, string str234, string strMore)
{
return string.Format(FormatCount(count, str1, str234, strMore), count);
}

, то пример использования будет такой:

for (int c = 0; c < 125; c++)
{
string result = string.Format(«В прошлом году {0}», FormatCountTemplate(c, «продан {0} слон», «продано {0} слона», «продано {0} слонов»));
Console.WriteLine(result);
}

Надеюсь, пост будет полезен и позволит сделать чей-нибудь сайт лучше.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.