Я задавался вопросом, был ли способ непосредственно преобразовать целое число 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()
date.toDay.dayofweek.tostring
даст вам то, что вы ищете. Легко и приятно.
Существует формат данных для этого: 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 тонкость; Может быть, что-то связано с использованием дата
вместо DateTime
? Попробуйте это:
MessageBox.Show(DateTime.Today.DayOfWeek.ToString())
Это не будет чувствительным к культуре, хотя - он всегда будет просто отображать имя стоимости Enum, на английском языке. Если это не хорошо для вас, используйте решение Zyprax или Itowlson.