C#: Set initial DayOfWeek as Monday not Sunday

msfanboy picture msfanboy · Jun 28, 2010 · Viewed 23.2k times · Source

Is there a way to set the first DayOfWeek as Monday = 0 not Sunday?

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

Answer

jrista picture jrista · Jun 28, 2010

You would need to create a custom culture, and specify the initial DayOfWeek as Monday. An instance of your custom culture would need to be set to whatever context is normally used to access culture information (i.e. Thread.CurrentCulture). The following article should get you started on creating a custom culture:

How to: Create Custom Cultures

EDIT:

I just reread your question, and I noticed something. You can not change the DayOfWeek property...that is simply an enumeration value. You would need to compare the DayOfWeek to the FirstDayOfWeek property of the CultureInfo.DateTimeFormat property:

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

By default, FirstDayOfWeek is Sunday. If you created a custom culture, it could be any day of the week you so choose (i.e. Monday).