Есть ли встроенные склонения имен месяцев в C#
мне интересно, есть ли какая-либо встроенная функциональность в .NET для снижения дат в языках, поддерживающих склонения существительных,
(т. В русском языке название месяца -февраль
, но если бы я хотел сказать дату или сказать, что что-то должно быть, я бы использовал форму февраля
). Я сделал свою собственную версию, которая работает для этого случая, но мне нужно будет расширить до других случаев и других языков, которые будут иметь свои собственные склонения для дат.
эта функциональность встроенная, или доступно во внешней библиотеке? Спасибо за любую помощь.
я предоставил свою функцию для русского родительного падежа, если мое объяснение не понятно.
public static string DeclineMonth(this DateTime time)
{
var month = time.ToString("MMMM");
if (month.Last() == 'ь')
return month.Replace('ь', 'я');
else
return month + "a";
}
1 ответов
Вы можете получить название месяца в два дела, Именительный:
DateTimeFormatInfo info = CultureInfo.GetCultureInfo("ru-RU").DateTimeFormat;
// February: 2 - 1 (array is zero based) - "Февраль"
Console.Write(info.MonthNames[2 - 1]);
и Родительный:
// February: 2 - 1 (array is zero based) - "февраля"
Console.Write(info.MonthGenitiveNames[2 - 1]);
другие случаи (например Дательный, Винительный) не поддерживаются, и мы должны выполнять их вручную.