thyme-0.2.0.0: src/Data/Thyme/Calendar/OrdinalDate.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ViewPatterns #-}
-- | ISO 8601 Ordinal Date format
module Data.Thyme.Calendar.OrdinalDate
( Year, isLeapYear
, DayOfYear, OrdinalDate (..), ordinalDate
, module Data.Thyme.Calendar.OrdinalDate
) where
import Prelude
import Control.Applicative
import Control.Lens
import Control.Monad
import Data.Thyme.Calendar.Internal
import Data.Thyme.TH
{-# INLINE ordinalDateValid #-}
ordinalDateValid :: OrdinalDate -> Maybe Day
ordinalDateValid od@(OrdinalDate y d) = review ordinalDate od
<$ guard (1 <= d && d <= if isLeapYear y then 366 else 365)
-- * Lenses
thymeLenses ''OrdinalDate