Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Calendar date reckoned by year, month-of-year, and n-th day-of-week.
Synopsis
- type Year = Int
- type Month = Int
- type DayOfWeek = Int
- pattern MV_WeekdayOfMonth :: (MVector s Int) -> MVector s WeekdayOfMonth
- pattern V_WeekdayOfMonth :: (Vector Int) -> Vector WeekdayOfMonth
- data WeekdayOfMonth = WeekdayOfMonth {}
- _womYear :: Lens' WeekdayOfMonth Year
- _womMonth :: Lens' WeekdayOfMonth Month
- _womNth :: Lens' WeekdayOfMonth Int
- _womDayOfWeek :: Lens' WeekdayOfMonth DayOfWeek
- weekdayOfMonth :: Iso' Day WeekdayOfMonth
- weekdayOfMonthValid :: WeekdayOfMonth -> Maybe Day
Documentation
Day of the week.
- 0
- Sunday for
SundayWeek
- 1…6
- Monday…Saturday
- 7
- Sunday for
WeekDate
,MondayWeek
, andWeekdayOfMonth
pattern MV_WeekdayOfMonth :: (MVector s Int) -> MVector s WeekdayOfMonth Source #
pattern V_WeekdayOfMonth :: (Vector Int) -> Vector WeekdayOfMonth Source #
data WeekdayOfMonth Source #
Calendar date with year, month-of-year, and n-th day-of-week.
Instances
_womYear :: Lens' WeekdayOfMonth Year Source #
_womMonth :: Lens' WeekdayOfMonth Month Source #
_womNth :: Lens' WeekdayOfMonth Int Source #
_womDayOfWeek :: Lens' WeekdayOfMonth DayOfWeek Source #
weekdayOfMonth :: Iso' Day WeekdayOfMonth Source #
Conversion between a Day
and and WeekdayOfMonth
.
This is a proper Iso
if and only if all of the WeekdayOfMonth
fields
are valid and positive.
For example, the last Monday in January 2016 is also the fourth Monday:
>weekdayOfMonth
#
WeekdayOfMonth
2016 1 (-1) 1 2016-01-25 >YearMonthDay
2016 01 25^.
from
gregorian
.
weekdayOfMonth
WeekdayOfMonth
{womYear
= 2016,womMonth
= 1,womNth
= 4,womDayOfWeek
= 1}
weekdayOfMonthValid :: WeekdayOfMonth -> Maybe Day Source #
Convert a WeekdayOfMonth
to a Day
.
Returns Nothing
for invalid input.
For example, the third Sunday of January 2016 is 2016-01-27, but there is no fifth Monday in January 2016.
>weekdayOfMonthValid
(WeekdayOfMonth
2016 1 3 7)Just
2016-01-17 >weekdayOfMonthValid
(WeekdayOfMonth
2016 1 5 1)Nothing