Я ищу, есть ли официальное перечисление месяцев в структуре .net.
Мне кажется возможным, что он есть, из-за того, насколько часто используется месяц, и потому, что в структуре .net есть другие подобные перечисления.
Например, есть перечисление дней недели, System.DayOfWeek, которое включает понедельник, вторник и т. Д.
Мне интересно, есть ли один для месяцев в году, то есть января, февраля и т. Д.?
Кто-нибудь знает?
c#
.net
datetime
enumeration
Марк Роджерс
источник
источник
Нет, нет.
источник
Microsoft.VisualBasic.MonthName
?Нет.
Вот один, который я приготовил ранее. (Версия C #)
источник
NotSet
? Почему бы просто не начатьJanuary = 1
? тогда вы могли бы покончить с остальными заданиями ...January
если, например, он используется как свойство для класса. в большинстве случаев я не хочу этого, я хочу, чтобы у него было нулевое значение, прежде чем оно будет явно присвоеноNotSet
опущено иJanuary = 1
(а остальные значения - 2, 3 и т. Д.),(Month)0
DateTimeFormatInfo.CurrentInfo.MonthNames
(не перечисление, но я думаю, что экземпляр CurrentInfo DateTimeFormatInfo - это то, что вы ищете в целом). Если вам нужен раскрывающийся список, вы можете создать его следующим образом:источник
var months = Enumerable.Range(0, 11).Select(m => new KeyValuePair<int, string>(m + 1, DateTimeFormatInfo.CurrentInfo.MonthNames[m]));
Нашел один в перечислении "MonthNamesType" этого пространства имен: Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.Exchange2007
Расположение немного пугает, но тем не менее оно есть.
источник
Чего именно вы пытаетесь достичь?
если все, что вам нужно, это двенадцать строк с указанием месяцев года, то это доступно через строку настраиваемого формата, применяемую к любому экземпляру datetime,
если вы просто хотите указать месяц как перечислимое свойство какого-либо другого типа объекта, тогда свойство Month поля DateTime возвращает целое число от 1 до 12 ...
источник
Да, конечно, есть. Это часть пространства имен Microsoft.VisualBasic ...
И тем из вас, у кого есть проблема с этим пространством имен, вы должны понимать, что это действительно .NET, и он никуда не денется .
Для записи
MonthName
функция внутренне вызывает следующее ...источник
IEnumerable
но не ее вариантомenum
. Так что это не работает.У некоторых календарей действительно больше 12 месяцев: http://en.wikipedia.org/wiki/Month, но я не могу сказать, было ли это причиной того, что MS не построила перечисление в .NET.
Для ленивых вроде меня, которым хотелось бы копировать / вставить в VB:
источник
Я не знаю точно, но думаю, что нет. DateTime.Month возвращает целое число. Если бы такое перечисление было, его, вероятно, вернула бы DateTime.
источник
Я бы искал что-то подобное, чтобы закодировать, как
имеет это магическое число 1. в то время как
самодокументируется
источник
Перечисление было бы весьма полезно, но вы можете получить желаемый результат с помощью формата:
Это возвращает полное название месяца (январь, февраль и т. Д.). Используйте
myDateTimeObject.ToString("MMM")
для краткого названия (январь, февраль, март и т. Д.).Если у вас есть конкретный номер месяца
mnthNum
, без каких - либоDateTime
, вы всегда можете использовать что - то вроде этого:или
Но это кажется немного запутанным. В первом примере это значение должно
mnthNum
быть от 1 до 12. Второй пример позволяет (почти) использовать любой месяц и не ограничивается числом от 1 до 12.источник