Преобразование DayofWeek Enum в строку, возмещающее день
-
24-09-2019 - |
Вопрос
Мне было интересно, был ли способ напрямую преобразовать целое число 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
Спасибо :)
Решение
Проще говоря:
Dim day As String = Date.Today.DayOfWeek.ToString()
Другие советы
Datetimeformatinfo.currentInfo.Доходность.
Для этого есть формат 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#dddddsppifier.
DateTime.DayOfWeek
не возвращает целое число - он возвращает enum типа DayOfWeek
. Отказ Я ожидаю, что это автоматически преобразуется во имя, но, возможно, это VB тонкость; Может быть, что-то связано с использованием Date
вместо DateTime
? Попробуй это:
MessageBox.Show(DateTime.Today.DayOfWeek.ToString())
Это не будет чувствительным к культуре, хотя - он всегда будет просто отображать имя стоимости Enum, на английском языке. Если это не полезно для вас, используйте решение Zyprax или Itowlson.
Date.Today.DayOfWeek.ToString
даст вам то, что вы ищете. Легко и приятно.
На всякий случай, когда другие смотрели на этот пример. Я считаю, что это должно быть случай 0 на воскресенье.
Case 0
day = "Sunday"