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