| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Thyme.Calendar.MonthDay
Description
Calendar months and day-of-months.
Synopsis
- type Month = Int
- type DayOfMonth = Int
- data MonthDay = MonthDay {
- mdMonth :: !Month
- mdDay :: !DayOfMonth
- _mdMonth :: Lens' MonthDay Month
- _mdDay :: Lens' MonthDay DayOfMonth
- monthDay :: Bool -> Iso' DayOfYear MonthDay
- monthDayValid :: Bool -> MonthDay -> Maybe DayOfYear
- monthLength :: Bool -> Month -> Days
- monthAndDayToDayOfYear :: Bool -> Month -> DayOfMonth -> DayOfYear
- monthAndDayToDayOfYearValid :: Bool -> Month -> DayOfMonth -> Maybe DayOfYear
- dayOfYearToMonthAndDay :: Bool -> DayOfYear -> (Month, DayOfMonth)
Documentation
type DayOfMonth = Int Source #
Calendar day-of-month, starting from 1.
A strict pair of a Month and a DayOfMonth.
Constructors
| MonthDay | |
Fields
| |
Instances
_mdDay :: Lens' MonthDay DayOfMonth Source #
Predicated on whether or not it's a leap year, convert between an
ordinal DayOfYear and the corresponding Month and DayOfMonth.
> 60^.monthDay(isLeapYear2015)MonthDay{mdMonth= 3,mdDay= 1}
> 60^.monthDay(isLeapYear2016)MonthDay{mdMonth= 2,mdDay= 29}
>monthDay(isLeapYear2016)#MonthDay2 29 60
>monthDay(isLeapYear2015)#MonthDay2 28 59
Note that monthDay is an improper Iso, as the following example
shows. To handle this case correctly, use monthDayValid.
>monthDay(isLeapYear2015)#MonthDay2 29 59
Predicated on whether or not it's a leap year, convert a MonthDay to
an ordinal DayOfYear.
>monthDayValid(isLeapYear2016) (MonthDay2 29)Just60
>monthDayValid(isLeapYear2015) (MonthDay2 29)Nothing
Predicated on whether or not the year is a leap year, return the number
of Days in the given Month.
> monthLength (isLeapYear 2015) 2
28
> monthLength (isLeapYear 2016) 2
29
monthAndDayToDayOfYear Source #
Arguments
| :: Bool | |
| -> Month | |
| -> DayOfMonth | |
| -> DayOfYear |
Predicated on whether or not it is a leap year, convert a Month and
DayOfMonth to its corresponding ordinal DayOfYear.
Does not validate the input.
monthAndDayToDayOfYearleap m d =monthDayleap#MonthDaym d
monthAndDayToDayOfYearValid Source #
Arguments
| :: Bool | |
| -> Month | |
| -> DayOfMonth | |
| -> Maybe DayOfYear |
Predicated on whether or not it is a leap year, convert a Month and
DayOfMonth to its corresponding ordinal DayOfYear.
Returns Nothing for invalid input.
monthAndDayToDayOfYearValidleap m d =monthDayValidleap (MonthDaym d)
dayOfYearToMonthAndDay Source #
Arguments
| :: Bool | |
| -> DayOfYear | |
| -> (Month, DayOfMonth) |
Predicated on whether or not it is a leap year, convert an ordinal
DayOfYear to its corresponding Month and DayOfMonth.
dayOfYearToMonthAndDayleap (view(monthDayleap) ->MonthDaym d) = (m, d)