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

有没有办法将第一个DayOfWeek设置为星期一= 0而不是星期日?

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

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

如何:创建自定义文化

编辑:

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

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

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

DayOfWeek是一个enum ,所以你不能改变它。 在过去,我只是调整了我存储的值来补偿,你可能需要做类似的事情。 我需要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)