tag remarks c# dayofweek

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.