C#:将初始DayOfWeek设置为星期一而不是星期日

时间:2010-06-28 19:41:31

标签: c# dayofweek

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

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

3 个答案:

答案 0 :(得分:11)

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

How to: Create Custom Cultures

编辑:

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

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

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

答案 1 :(得分:3)

DayOfWeekenum,因此您无法更改它。在过去,我只是调整了我存储的值来补偿,你可能需要做类似的事情。我需要0 =未设置。

答案 2 :(得分:0)

只是为搜索此问题的人完成此操作,这是我的简单解决方法(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)