Преобразование перечисления DayOfWeek в строку, повторяющую день
мне было интересно, есть ли способ напрямую преобразовать целое число DayOfWeek
возвращается в строку, представляющую день, такой как понедельник, вторник и т. д.
пример кода:
MessageBox.Show(Date.Today.DayOfWeek)
вернет 6
(на сегодняшний день). Есть ли способ напрямую преобразовать это в Saturday
, например? Мне все равно, во что он действительно преобразует его, но я хочу покончить с моим избранным случаем:
Select Case Date.Today.DayOfWeek
Case 0
day = "Sunday"
Case 1
day = "Monday"
Case 2
day = "Tuesday"
Case 3
day = "Wednesday"
Case 4
day = "Thursday"
Case 5
day = "Friday"
Case 6
day = "Saturday"
Case Else
day = "Apocalypse: we're all boned."
End Select
спасибо :)
6 ответов
для этого есть формат DateTime: dddd
Dim date1 As Date = #08/29/2008 7:27:15PM#
date1.ToString("dddd", CultureInfo.CreateSpecificCulture("en-US"))
С помощью CultureInfo вы можете получить его на определенном языке (это необязательно)
подробнее: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#ddddSpecifier
DateTime.DayOfWeek
не возвращает целое число - значение перечислимого типа DayOfWeek
. Я ожидал бы, что это будет преобразовано в имя автоматически, но, возможно, это тонкость VB; возможно, что-то связано с использованием Date
вместо DateTime
? Попробуйте это:
MessageBox.Show(DateTime.Today.DayOfWeek.ToString())
Это не будет культуры - он всегда будет отображать только имя значения перечисления, на английском языке. Если это плохо для вас, используйте решение Zyphrax или itowlson.
на всякий случай другие посмотрели на этот пример. Я считаю, что это должен быть случай 0 в воскресенье.
Case 0
day = "Sunday"