Существуют ли встроенные имена имен в формате С#
Мне интересно, есть ли встроенная функция .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]);
Другие случаи (например, Dative, Accusative) не поддерживаются, и мы должны их реализовать вручную.