Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Various Week Date formats
Synopsis
- type Year = Int
- type WeekOfYear = Int
- type DayOfWeek = Int
- data WeekDate = WeekDate {}
- _wdYear :: Lens' WeekDate Year
- _wdWeek :: Lens' WeekDate WeekOfYear
- _wdDay :: Lens' WeekDate DayOfWeek
- weekDate :: Iso' Day WeekDate
- weekDateValid :: WeekDate -> Maybe Day
- showWeekDate :: Day -> String
- data SundayWeek = SundayWeek {}
- _swYear :: Lens' SundayWeek Year
- _swWeek :: Lens' SundayWeek WeekOfYear
- _swDay :: Lens' SundayWeek DayOfWeek
- sundayWeek :: Iso' Day SundayWeek
- sundayWeekValid :: SundayWeek -> Maybe Day
- data MondayWeek = MondayWeek {}
- _mwYear :: Lens' MondayWeek Year
- _mwWeek :: Lens' MondayWeek WeekOfYear
- _mwDay :: Lens' MondayWeek DayOfWeek
- mondayWeek :: Iso' Day MondayWeek
- mondayWeekValid :: MondayWeek -> Maybe Day
- toWeekDate :: Day -> (Year, WeekOfYear, DayOfWeek)
- fromWeekDate :: Year -> WeekOfYear -> DayOfWeek -> Day
- fromWeekDateValid :: Year -> WeekOfYear -> DayOfWeek -> Maybe Day
Documentation
type WeekOfYear = Int Source #
Day of the week.
- 0
- Sunday for
SundayWeek
- 1…6
- Monday…Saturday
- 7
- Sunday for
WeekDate
,MondayWeek
, andWeekdayOfMonth
ISO 8601 Week Date
Note that week 01 is defined as the week with the first Thursday, thus
wdYear
may differ from the Gregorian year between December 29th and
January 3rd.
Instances
_wdWeek :: Lens' WeekDate WeekOfYear Source #
showWeekDate :: Day -> String Source #
Shows a Day
using the yyyy-Www-d
ISO 8601 Week Date format.
>showWeekDate
(gregorian
#
YearMonthDay
2006 11 15) "2006-W46-3"
Weeks starting Sunday
data SundayWeek Source #
Week-based calendar date with the first Sunday of the year as the first
day of week 01. This corresponds to %U
and %w
of
strftime(3)
.
The final week of a given year and week 00 of the next both refer to the same week.
Instances
_swYear :: Lens' SundayWeek Year Source #
_swWeek :: Lens' SundayWeek WeekOfYear Source #
_swDay :: Lens' SundayWeek DayOfWeek Source #
sundayWeek :: Iso' Day SundayWeek Source #
Conversion between Day
and SundayWeek
.
>YearMonthDay
2016 1 3^.
from
gregorian
.
sundayWeek
SundayWeek
{swYear
= 2016,swWeek
= 1,swDay
= 0}
sundayWeekValid :: SundayWeek -> Maybe Day Source #
Convert a SundayWeek
to a Day
, or Nothing
for invalid SundayWeek
.
Weeks starting Monday
data MondayWeek Source #
Week-based calendar date with the first Monday of the year as the first
day of week 01. This corresponds to %W
and %u
of
strftime(3)
.
The final week of a given year and week 00 of the next both refer to the same week.
Instances
_mwYear :: Lens' MondayWeek Year Source #
_mwWeek :: Lens' MondayWeek WeekOfYear Source #
_mwDay :: Lens' MondayWeek DayOfWeek Source #
mondayWeek :: Iso' Day MondayWeek Source #
Conversion between Day
and MondayWeek
.
>YearMonthDay
2016 1 3^.
from
gregorian
.
mondayWeek
MondayWeek
{mwYear
= 2016,mwWeek
= 0,mwDay
= 7}
mondayWeekValid :: MondayWeek -> Maybe Day Source #
Convert a MondayWeek
to a Day
, or Nothing
for invalid MondayWeek
.
toWeekDate :: Day -> (Year, WeekOfYear, DayOfWeek) Source #
Converts a Day
to an ISO week date.
toWeekDate
(view
weekDate
->WeekDate
y w d) = (y, w, d)
fromWeekDate :: Year -> WeekOfYear -> DayOfWeek -> Day Source #
Converts an ISO week date
to a Day
.
Does not validate the input.
fromWeekDate
y w d =weekDate
#
WeekDate
y w d
fromWeekDateValid :: Year -> WeekOfYear -> DayOfWeek -> Maybe Day Source #
Converts an ISO week date
to a Day
.
Returns Nothing
for invalid input.
fromWeekDateValid
y w d =weekDateValid
(WeekDate
y w d)