Puede encontrar el día de la semana con mondayStartWeek
o sundayStartWeek
, dependiendo de si cree que una semana comienza el lunes o el domingo. Ambas funciones están en Data.Time.Calendar.OrdinalDate
.
λ> snd $ mondayStartWeek $ fromGregorian 2017 10 3
2
En el ejemplo anterior, el valor de retorno es 2
, lo que indica el segundo día de la semana. Como la función se llama mondayStartWeek
, el lunes es el primer día, por lo que 2
corresponde al martes. Esto es cierto, de 3 de octubre de 2017.
Una advertencia con respecto a los números de semana
Ambas funciones devuelven una tupla, en el que el segundo elemento es el día de la semana. Por lo que puedo decir, eso debería ser confiable.
El primer elemento, sin embargo, es el número de semana del año. Tenga cuidado con eso, porque las reglas para la numeración semanal son políticas. Si mal no recuerdo, en Estados Unidos, la semana 1 es la semana que contiene el 1 de enero. Ese no es el caso en Dinamarca, donde vivo. Aquí, la semana 1 es la primera semana en la que el jueves cae en el nuevo año. Esto puede significar que el 31 de diciembre puede caer en la semana 1 del próximo año. IIRC, esta es la regla para muchos otros países europeos. Algunos años, los números de semana americanos y europeos se alinean, pero algunos años, no.
Todavía no puedo encontrar una función: ** 'dayOfWeek :: SomeDateType -> WeekDayType' **. –
Ejemplo: 'dayOfWeek (fromGregorian 2014 7 15) {- evals to Tuesday -}' –