Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
ISO 8601 Ordinal Date format
Synopsis
- data Day
- type Year = Integer
- type DayOfYear = Int
- type WeekOfYear = Int
- isLeapYear :: Year -> Bool
- toOrdinalDate :: Day -> (Year, DayOfYear)
- fromOrdinalDate :: Year -> DayOfYear -> Day
- pattern YearDay :: Year -> DayOfYear -> Day
- fromOrdinalDateValid :: Year -> DayOfYear -> Maybe Day
- showOrdinalDate :: Day -> String
- mondayStartWeek :: Day -> (WeekOfYear, Int)
- sundayStartWeek :: Day -> (WeekOfYear, Int)
- fromMondayStartWeek :: Year -> WeekOfYear -> Int -> Day
- fromMondayStartWeekValid :: Year -> WeekOfYear -> Int -> Maybe Day
- fromSundayStartWeek :: Year -> WeekOfYear -> Int -> Day
- fromSundayStartWeekValid :: Year -> WeekOfYear -> Int -> Maybe Day
Documentation
The Modified Julian Day is a standard count of days, with zero being the day 1858-11-17.
Instances
Day of year, in range 1 (January 1st) to 366. December 31st is 365 in a common year, 366 in a leap year.
type WeekOfYear = Int Source #
Week of year, by various reckonings, generally in range 0-53 depending on reckoning.
isLeapYear :: Year -> Bool Source #
Is this year a leap year according to the proleptic Gregorian calendar?
fromOrdinalDate :: Year -> DayOfYear -> Day Source #
Convert from ISO 8601 Ordinal Date format. Invalid day numbers will be clipped to the correct range (1 to 365 or 366).
pattern YearDay :: Year -> DayOfYear -> Day Source #
Bidirectional abstract constructor for ISO 8601 Ordinal Date format. Invalid day numbers will be clipped to the correct range (1 to 365 or 366).
fromOrdinalDateValid :: Year -> DayOfYear -> Maybe Day Source #
Convert from ISO 8601 Ordinal Date format.
Invalid day numbers return Nothing
showOrdinalDate :: Day -> String Source #
Show in ISO 8601 Ordinal Date format (yyyy-ddd)
mondayStartWeek :: Day -> (WeekOfYear, 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 formatTime
).
Monday is 1, Sunday is 7 (as %u
in formatTime
).
sundayStartWeek :: Day -> (WeekOfYear, 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 formatTime
).
Sunday is 0, Saturday is 6 (as %w
in formatTime
).
:: Year | Year. |
-> WeekOfYear | Monday-starting week number (as |
-> Int | Day of week.
Monday is 1, Sunday is 7 (as |
-> 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 formatTime
).
fromMondayStartWeekValid Source #
:: Year | Year. |
-> WeekOfYear | Monday-starting week number (as |
-> Int | Day of week.
Monday is 1, Sunday is 7 (as |
-> Maybe Day |
:: Year | Year. |
-> WeekOfYear | Sunday-starting week number (as |
-> Int | Day of week
Sunday is 0, Saturday is 6 (as |
-> 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 formatTime
).
fromSundayStartWeekValid Source #
:: Year | Year. |
-> WeekOfYear | Sunday-starting week number (as |
-> Int | Day of week.
Sunday is 0, Saturday is 6 (as |
-> Maybe Day |