Есть ли встроенные склонения имен месяцев в 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]);

другие случаи (например Дательный, Винительный) не поддерживаются, и мы должны выполнять их вручную.