Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Week-based calendars
Synopsis
- type Year = Integer
- type WeekOfYear = Int
- data DayOfWeek
- dayOfWeek :: Day -> DayOfWeek
- data FirstWeekType
- toWeekCalendar :: FirstWeekType -> DayOfWeek -> Day -> (Year, WeekOfYear, DayOfWeek)
- fromWeekCalendar :: FirstWeekType -> DayOfWeek -> Year -> WeekOfYear -> DayOfWeek -> Day
- fromWeekCalendarValid :: FirstWeekType -> DayOfWeek -> Year -> WeekOfYear -> DayOfWeek -> Maybe Day
- toWeekDate :: Day -> (Year, WeekOfYear, Int)
- fromWeekDate :: Year -> WeekOfYear -> Int -> Day
- pattern YearWeekDay :: Year -> WeekOfYear -> DayOfWeek -> Day
- fromWeekDateValid :: Year -> WeekOfYear -> Int -> Maybe Day
- showWeekDate :: Day -> String
Documentation
type WeekOfYear = Int Source #
Week of year, by various reckonings, generally in range 0-53 depending on reckoning
Instances
data FirstWeekType Source #
FirstWholeWeek | first week is the first whole week of the year |
FirstMostWeek | first week is the first week with four days in the year |
Instances
Eq FirstWeekType Source # | |
Defined in Data.Time.Calendar.WeekDate (==) :: FirstWeekType -> FirstWeekType -> Bool # (/=) :: FirstWeekType -> FirstWeekType -> Bool # |
:: FirstWeekType | how to reckon the first week of the year |
-> DayOfWeek | the first day of each week |
-> Day | |
-> (Year, WeekOfYear, DayOfWeek) |
Convert to the given kind of "week calendar". Note that the year number matches the weeks, and so is not always the same as the Gregorian year number.
:: FirstWeekType | how to reckon the first week of the year |
-> DayOfWeek | the first day of each week |
-> Year | |
-> WeekOfYear | |
-> DayOfWeek | |
-> Day |
Convert from the given kind of "week calendar". Invalid week and day values will be clipped to the correct range.
fromWeekCalendarValid Source #
:: FirstWeekType | how to reckon the first week of the year |
-> DayOfWeek | the first day of each week |
-> Year | |
-> WeekOfYear | |
-> DayOfWeek | |
-> Maybe Day |
Convert from the given kind of "week calendar". Invalid week and day values will return Nothing.
ISO 8601 Week Date format
toWeekDate :: Day -> (Year, WeekOfYear, Int) Source #
Convert to ISO 8601 Week Date format. First element of result is year, second week number (1-53), third day of week (1 for Monday to 7 for Sunday). Note that "Week" years are not quite the same as Gregorian years, as the first day of the year is always a Monday. The first week of a year is the first week to contain at least four days in the corresponding Gregorian year.
fromWeekDate :: Year -> WeekOfYear -> Int -> Day Source #
Convert from ISO 8601 Week Date format. First argument is year, second week number (1-52 or 53), third day of week (1 for Monday to 7 for Sunday). Invalid week and day values will be clipped to the correct range.
pattern YearWeekDay :: Year -> WeekOfYear -> DayOfWeek -> Day Source #
Bidirectional abstract constructor for ISO 8601 Week Date format. Invalid week values will be clipped to the correct range.
fromWeekDateValid :: Year -> WeekOfYear -> Int -> Maybe Day Source #
Convert from ISO 8601 Week Date format. First argument is year, second week number (1-52 or 53), third day of week (1 for Monday to 7 for Sunday). Invalid week and day values will return Nothing.
showWeekDate :: Day -> String Source #
Show in ISO 8601 Week Date format as yyyy-Www-d (e.g. "2006-W46-3").