remarks - C#: Establezca el Día inicial de la semana como lunes no domingo
remarks c# (3)
¿Hay alguna manera de configurar el primer DayOfWeek como lunes = 0 no domingo?
(int)dateList[0].DayOfWeek == 0) // 0 = Sunday
Necesitará crear una cultura personalizada y especificar el Día inicial de semana como el lunes. Una instancia de su cultura personalizada debería establecerse en cualquier contexto que se use normalmente para acceder a la información de la cultura (es decir, Thread.CurrentCulture
). El siguiente artículo debería comenzar a crear una cultura personalizada:
Cómo: Crear Culturas Personalizadas
EDITAR:
Acabo de releer tu pregunta, y me di cuenta de algo. No puede cambiar la propiedad DayOfWeek ... que es simplemente un valor de enumeración. Tendría que comparar el DayOfWeek con la propiedad FirstDayOfWeek de la propiedad CultureInfo.DateTimeFormat:
dateList[0].DayOfWeek == Thread.CurrentCulture.DateTimeFormat.FirstDayOfWeek
Por defecto, FirstDayOfWeek
es el Sunday
. Si creó una cultura personalizada, podría ser cualquier día de la semana que elija (es decir, el Monday
).
Solo para completar esto para las personas que buscan este problema, aquí está mi solución simple (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
Uso:
Dim TrueDayInWeek as int16
TrueDayInWeek = GetTrueDayOfWeek(dateList(0).DayOfWeek)
DayOfWeek
es una enum
por lo que no puedes cambiarlo. En el pasado, simplemente ajusté el valor que almaceno para compensar y es posible que tenga que hacer algo similar. Necesitaba 0 = Unset.