Vb.net 将DayOfWeek枚举转换为重复该天的字符串
我想知道是否有一种方法可以直接将整数Vb.net 将DayOfWeek枚举转换为重复该天的字符串,vb.net,date,dayofweek,select-case,Vb.net,Date,Dayofweek,Select Case,我想知道是否有一种方法可以直接将整数DayOfWeek返回值转换为表示星期一、星期二等日期的字符串 示例代码: MessageBox.Show(Date.Today.DayOfWeek) 这将返回6(从今天开始)。例如,有没有一种方法可以直接将其转换为星期六?我真的不在乎它到底能转化成什么,但我想去掉我的Select Case: Select Case Date.Today.DayOfWeek Case 0 day = "Sunday" Case 1
DayOfWeek
返回值转换为表示星期一、星期二等日期的字符串
示例代码:
MessageBox.Show(Date.Today.DayOfWeek)
这将返回6
(从今天开始)。例如,有没有一种方法可以直接将其转换为星期六
?我真的不在乎它到底能转化成什么,但我想去掉我的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
谢谢:)不返回整数-它返回类型为的枚举。我希望它能自动转换成名称,但这可能是VB的一个微妙之处;可能与使用Date
而不是DateTime
有关?试试这个:
MessageBox.Show(DateTime.Today.DayOfWeek.ToString())
但这不会对区域性敏感-它始终只显示enum值的英文名称。如果这对你不好,使用Zyphrax或itowlson的解决方案。有一种日期时间格式:dddd
Dim date1 As Date = #08/29/2008 7:27:15PM#
date1.ToString("dddd", CultureInfo.CreateSpecificCulture("en-US"))
使用CultureInfo,您可以获得特定语言的信息(可选)
有关更多信息:
一种更简单的方法:
Dim day As String = Date.Today.DayOfWeek.ToString()
DateTimeFormatInfo.CurrentInfo..
Date.Today.DayOfWeek.ToString将为您提供所需信息。非常简单。以防其他人看到这个例子。我想周日应该是0号案例
Case 0
day = "Sunday"
我认为.NET framework不支持您的案例,或者。太糟糕了…也许微软应该看看。。。总有一天会发生的。尽管我以后在代码中使用day
时确实会出现错误,但如果它不存在的话:p使用Case-Else
没有任何错误。有更简单的方法来获得日名。然而,正如Jon指出的,DayOfWeek是一种枚举类型,所以它永远不会是0到6以外的任何类型。为了强调其他人也说过的话,Sunday是0,而不是7。这将返回不变的(美式英语)名称;可以调试或存储在数据库或其他任何地方,但是如果他正在显示它,他应该使用一些本地化字符串的东西。@itowlson:我只是想说一些类似的东西,但不太具体。IMO表示,并非每个UI都需要本地化。有很多应用程序只会使用一种语言(想想非国际公司的内部应用程序)。如果那是英语,那生活就更轻松了。谢谢。这段代码只是引用我表格中的一些文本框。将要显示的实际数据来自数据库:)您在这里看到的是对问题的评论,而不是答案。发布评论作为规避规则的答案不可避免地会导致版主介入。听起来不错。但是我搜索了这个示例代码,它毫无疑问是不正确的。我花了一些时间弄明白了。我认为应该为未来的用户指出,即使这个问题已经得到了回答。@ghord这种技术只是将枚举转换为字符串值;您可能会执行类似于DateTime.Today.ToString(“dddd”,新文化信息(“pt br”))的操作。