С#: установите начальный DayOfWeek как понедельник не в воскресенье
Есть ли способ установить первый DayOfWeek как понедельник = 0 не в воскресенье?
(int)dateList[0].DayOfWeek == 0) // 0 = Sunday
Ответ 1
Вам нужно будет создать пользовательскую культуру и указать начальный DayOfWeek как понедельник. Экземпляр вашей настраиваемой культуры должен быть настроен на любой контекст, обычно используемый для доступа к информации о культуре (т.е. Thread.CurrentCulture). В следующей статье вы должны начать создавать пользовательскую культуру:
Я просто перечитал ваш вопрос, и я кое-что заметил. Вы не можете изменить свойство DayOfWeek... это просто значение перечисления. Вам нужно сравнить DayOfWeek с свойством FirstDayOfWeek свойства CultureInfo.DateTimeFormat:
По умолчанию FirstDayOfWeek - Sunday. Если вы создали пользовательскую культуру, это может быть любой день недели, который вы так выбираете (т.е. Monday).
Ответ 2
DayOfWeek является enum, поэтому вы не можете его изменить. В прошлом я просто скорректировал значение, которое я хранил, чтобы компенсировать, и вам, возможно, придется сделать что-то подобное. Мне нужно 0 = Unset.
Ответ 3
Просто, чтобы завершить это для людей, которые ищут эту проблему, вот мое проворное решение (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)