{-# LANGUAGE CPP #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ViewPatterns #-}
#include "thyme.h"
module Data.Thyme.Calendar.MonthDay
( Month, DayOfMonth
, MonthDay (..), _mdMonth, _mdDay
, monthDay, monthDayValid, monthLength
, module Data.Thyme.Calendar.MonthDay
) where
import Prelude
import Control.Lens
import Data.Thyme.Calendar.Internal
{-# INLINE dayOfYearToMonthAndDay #-}
dayOfYearToMonthAndDay
:: Bool
-> DayOfYear
-> (Month, DayOfMonth)
dayOfYearToMonthAndDay :: Bool -> DayOfYear -> (DayOfYear, DayOfYear)
dayOfYearToMonthAndDay Bool
leap (forall a s. Getting a s a -> s -> a
view (Bool -> Iso' DayOfYear MonthDay
monthDay Bool
leap) -> MonthDay DayOfYear
m DayOfYear
d) = (DayOfYear
m, DayOfYear
d)
{-# INLINE monthAndDayToDayOfYear #-}
monthAndDayToDayOfYear
:: Bool
-> Month
-> DayOfMonth
-> DayOfYear
monthAndDayToDayOfYear :: Bool -> DayOfYear -> DayOfYear -> DayOfYear
monthAndDayToDayOfYear Bool
leap DayOfYear
m DayOfYear
d = Bool -> Iso' DayOfYear MonthDay
monthDay Bool
leap forall s t a b. AReview s t a b -> b -> t
# DayOfYear -> DayOfYear -> MonthDay
MonthDay DayOfYear
m DayOfYear
d
{-# INLINE monthAndDayToDayOfYearValid #-}
monthAndDayToDayOfYearValid
:: Bool
-> Month
-> DayOfMonth
-> Maybe DayOfYear
monthAndDayToDayOfYearValid :: Bool -> DayOfYear -> DayOfYear -> Maybe DayOfYear
monthAndDayToDayOfYearValid Bool
leap DayOfYear
m DayOfYear
d = Bool -> MonthDay -> Maybe DayOfYear
monthDayValid Bool
leap (DayOfYear -> DayOfYear -> MonthDay
MonthDay DayOfYear
m DayOfYear
d)