C# 中是否有内置的月份名称变格

Are there built-in Month name declensions in C#

我想知道 .NET 中是否有任何内置功能可以在支持名词变格的语言中减少日期, (即,在俄语中,月份名称是 февраль,但如果我想说日期或说某事到期,我会使用 февраля 的形式)。我制作了我自己的版本,适用于这种情况,但我需要扩展到其他情况和其他语言,它们将有自己的日期变格。

此功能是内置的还是在外部库中可用?感谢您的帮助。

如果我的解释不清楚,我已经提供了俄语所有格的函数。

public static string DeclineMonth(this DateTime time)
{
    var month = time.ToString("MMMM");
    if (month.Last() == 'ь')
        return month.Replace('ь', 'я');
    else
        return month + "a";
}       

您可以在两个个案例中获得月份名称,Nominative:

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]);

不支持其他情况(例如宾格宾格),我们必须手动实现它们。