ISO 8601 Ordinal Date format

- toOrdinalDate :: Day -> (Integer, Int)
- fromOrdinalDate :: Integer -> Int -> Day
- fromOrdinalDateValid :: Integer -> Int -> Maybe Day
- showOrdinalDate :: Day -> String
- isLeapYear :: Integer -> Bool
- mondayStartWeek :: Day -> (Int, Int)
- sundayStartWeek :: Day -> (Int, Int)
- fromMondayStartWeek :: Integer -> Int -> Int -> Day
- fromMondayStartWeekValid :: Integer -> Int -> Int -> Maybe Day
- fromSundayStartWeek :: Integer -> Int -> Int -> Day
- fromSundayStartWeekValid :: Integer -> Int -> Int -> Maybe Day

# Documentation

toOrdinalDate :: Day -> (Integer, Int)Source

convert to ISO 8601 Ordinal Date format. First element of result is year (proleptic Gregoran calendar), second is the day of the year, with 1 for Jan 1, and 365 (or 366 in leap years) for Dec 31.

fromOrdinalDate :: Integer -> Int -> DaySource

convert from ISO 8601 Ordinal Date format. Invalid day numbers will be clipped to the correct range (1 to 365 or 366).

fromOrdinalDateValid :: Integer -> Int -> Maybe DaySource

convert from ISO 8601 Ordinal Date format. Invalid day numbers return Nothing

showOrdinalDate :: Day -> StringSource

show in ISO 8601 Ordinal Date format (yyyy-ddd)

isLeapYear :: Integer -> BoolSource

Is this year a leap year according to the proleptic Gregorian calendar?

mondayStartWeek :: Day -> (Int, Int)Source

Get the number of the Monday-starting week in the year and the day of the week.
The first Monday is the first day of week 1, any earlier days in the year are week 0 (as "%W" in `Data.Time.Format.formatTime`

).
Monday is 1, Sunday is 7 (as "%u" in `Data.Time.Format.formatTime`

).

sundayStartWeek :: Day -> (Int, Int)Source

Get the number of the Sunday-starting week in the year and the day of the week.
The first Sunday is the first day of week 1, any earlier days in the year are week 0 (as "%U" in `Data.Time.Format.formatTime`

).
Sunday is 0, Saturday is 6 (as "%w" in `Data.Time.Format.formatTime`

).

:: Integer | Year. |

-> Int | Monday-starting week number. |

-> Int | Day of week.
Monday is 1, Sunday is 7 (as "%u" in |

-> Day |

The inverse of `mondayStartWeek`

. Get a `Day`

given the year,
the number of the Monday-starting week, and the day of the week.
The first Monday is the first day of week 1, any earlier days in the year
are week 0 (as "%W" in `Data.Time.Format.formatTime`

).

:: Integer | Year. |

-> Int | Sunday-starting week number. |

-> Int | Day of week
Sunday is 0, Saturday is 6 (as "%w" in |

-> Day |

The inverse of `sundayStartWeek`

. Get a `Day`

given the year and
the number of the day of a Sunday-starting week.
The first Sunday is the first day of week 1, any earlier days in the
year are week 0 (as "%U" in `Data.Time.Format.formatTime`

).