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]);
不支持其他情况(例如宾格、宾格),我们必须手动实现它们。
我想知道 .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]);
不支持其他情况(例如宾格、宾格),我们必须手动实现它们。