Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将DayOfWeek枚举转换为重复该天的字符串_Vb.net_Date_Dayofweek_Select Case - Fatal编程技术网

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”))的操作。