18

有没有办法将第一个 DayOfWeek 设置为 Monday = 0 而不是 Sunday?

(int)dateList[0].DayOfWeek == 0) // 0 = Sunday
4

3 回答 3

11

您需要创建自定义文化,并将初始 DayOfWeek 指定为星期一。您的自定义文化的实例需要设置为通常用于访问文化信息的任何上下文(即Thread.CurrentCulture)。以下文章应该可以帮助您开始创建自定义文化:

如何:创建自定义文化

编辑:

我刚刚重读了你的问题,我注意到了一些事情。您不能更改 DayOfWeek 属性...这只是一个枚举值。您需要将 DayOfWeek 与 CultureInfo.DateTimeFormat 属性的 FirstDayOfWeek 属性进行比较:

dateList[0].DayOfWeek == Thread.CurrentCulture.DateTimeFormat.FirstDayOfWeek

默认情况下,FirstDayOfWeekSunday. 如果您创建了一种自定义文化,它可以是您选择的一周中的任何一天(即Monday)。

于 2010-06-28T19:50:43.017 回答
3

DayOfWeek是一个enum,所以你不能改变它。过去,我只是简单地调整了我存储的值来补偿,你可能需要做类似的事情。我需要 0 = 未设置。

于 2010-06-28T19:46:35.713 回答
1

只是为了让搜索此问题的人完成此操作,这是我的简单解决方法(VB.NET):

Private Function GetTrueDayOfWeek(DayOfWeekUS As Int16)
    Dim RetVal As Int16 = 0
    If DayOfWeekUS = 0 Then
        RetVal = 7
    Else
        RetVal = DayOfWeekUS
    End If
    Return RetVal
End Function

用法:

Dim TrueDayInWeek as int16
TrueDayInWeek = GetTrueDayOfWeek(dateList(0).DayOfWeek)
于 2017-08-01T14:15:00.977 回答