validity-time-0.5.0.0: src/Data/Validity/Time/Clock.hs
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Validity.Time.Clock where
import Data.Time.Clock
import Data.Validity
import Data.Validity.Time.Calendar ()
-- | Valid according to the 'Rational' it contains.
instance Validity UniversalTime where
validate = delve "toModifiedJulianDay" . getModJulianDate
-- | Trivially valid
instance Validity DiffTime where
validate = trivialValidation
instance Validity UTCTime where
validate UTCTime {..} =
mconcat
[ annotate utctDay "utctDay",
annotate utctDayTime "utctDayTime",
check (utctDayTime >= 0) "The day time is positive.",
check (utctDayTime < 86401) "The day time is strictly less than 86401."
]
instance Validity NominalDiffTime where
validate = trivialValidation