将DayOfWeek枚举转换为表示该日期的字符串

时间:2010-01-30 19:31:11

标签: vb.net date dayofweek select-case

我想知道是否有办法将整数DayOfWeek返回直接转换为表示星期一,星期二等日期的字符串。

示例代码:

MessageBox.Show(Date.Today.DayOfWeek)

这将返回6(截至今天)。有没有办法直接将其转换为Saturday?我真的不在乎它真正将它转化为什么,但我想取消我的Select Case:

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 个答案:

答案 0 :(得分:12)

DateTimeFormatInfo.CurrentInfo。GetDayName

答案 1 :(得分:5)

更简单的方法:

Dim day As String = Date.Today.DayOfWeek.ToString()

答案 2 :(得分:2)

有一个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

答案 3 :(得分:0)

DateTime.DayOfWeek不返回整数 - 它返回类型为DayOfWeek的枚举。我希望自动将其转换为名称,但这可能是VB的微妙之处;也许与使用Date而不是DateTime有关?试试这个:

MessageBox.Show(DateTime.Today.DayOfWeek.ToString())

这不会对文化敏感 - 它总是只显示枚举值的名称,用英语表示。如果这对您不利,请使用Zyphrax或itowlson的解决方案。

答案 4 :(得分:0)

Date.Today.DayOfWeek.ToString将为您提供所需的信息。很好,很容易。

答案 5 :(得分:-2)

以防其他人看过这个例子。我相信周日应该是案例0。

Case 0 
    day = "Sunday"