Data.Time.Clock.TAI.Compat

time-compat-1.9.8: Compatibility package for time

Safe Haskell | Trustworthy
Language | Haskell2010

Data.Time.Clock.TAI.Compat

Contents

- TAI arithmetic
- leap-second map type
- conversion between UTC and TAI with map

Synopsis

- data AbsoluteTime
- taiEpoch :: AbsoluteTime
- addAbsoluteTime :: DiffTime -> AbsoluteTime -> AbsoluteTime
- diffAbsoluteTime :: AbsoluteTime -> AbsoluteTime -> DiffTime
- taiNominalDayStart :: Day -> AbsoluteTime
- type LeapSecondMap = Day -> Maybe Int
- utcDayLength :: LeapSecondMap -> Day -> Maybe DiffTime
- utcToTAITime :: LeapSecondMap -> UTCTime -> Maybe AbsoluteTime
- taiToUTCTime :: LeapSecondMap -> AbsoluteTime -> Maybe UTCTime
- taiClock :: Maybe (DiffTime, IO AbsoluteTime)

# TAI arithmetic

data AbsoluteTime #

AbsoluteTime is TAI, time as measured by a clock.

#### Instances

Instances details

NFData AbsoluteTime |
Instance details Defined in Data.Time.Clock.Internal.AbsoluteTime Methods rnf :: AbsoluteTime -> () #
Data AbsoluteTime |
Instance details Defined in Data.Time.Clock.Internal.AbsoluteTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AbsoluteTime -> c AbsoluteTime # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AbsoluteTime # toConstr :: AbsoluteTime -> Constr # dataTypeOf :: AbsoluteTime -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AbsoluteTime) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AbsoluteTime) # gmapT :: (forall b. Data b => b -> b) -> AbsoluteTime -> AbsoluteTime # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AbsoluteTime -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AbsoluteTime -> r # gmapQ :: (forall d. Data d => d -> u) -> AbsoluteTime -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AbsoluteTime -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AbsoluteTime -> m AbsoluteTime # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AbsoluteTime -> m AbsoluteTime # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AbsoluteTime -> m AbsoluteTime #
Eq AbsoluteTime |
Instance details Defined in Data.Time.Clock.Internal.AbsoluteTime Methods (==) :: AbsoluteTime -> AbsoluteTime -> Bool # (/=) :: AbsoluteTime -> AbsoluteTime -> Bool #
Ord AbsoluteTime |
Instance details Defined in Data.Time.Clock.Internal.AbsoluteTime Methods compare :: AbsoluteTime -> AbsoluteTime -> Ordering # (<) :: AbsoluteTime -> AbsoluteTime -> Bool # (<=) :: AbsoluteTime -> AbsoluteTime -> Bool # (>) :: AbsoluteTime -> AbsoluteTime -> Bool # (>=) :: AbsoluteTime -> AbsoluteTime -> Bool # max :: AbsoluteTime -> AbsoluteTime -> AbsoluteTime # min :: AbsoluteTime -> AbsoluteTime -> AbsoluteTime #

taiEpoch :: AbsoluteTime #

The epoch of TAI, which is 1858-11-17 00:00:00 TAI.

addAbsoluteTime :: DiffTime -> AbsoluteTime -> AbsoluteTime #

addAbsoluteTime a b = a + b

diffAbsoluteTime :: AbsoluteTime -> AbsoluteTime -> DiffTime #

diffAbsoluteTime a b = a - b

taiNominalDayStart :: Day -> AbsoluteTime #

# leap-second map type

type LeapSecondMap = Day -> Maybe Int #

TAI - UTC during this day. No table is provided, as any program compiled with it would become out of date in six months.

# conversion between UTC and TAI with map

utcDayLength :: LeapSecondMap -> Day -> Maybe DiffTime #

utcToTAITime :: LeapSecondMap -> UTCTime -> Maybe AbsoluteTime #

taiToUTCTime :: LeapSecondMap -> AbsoluteTime -> Maybe UTCTime #

taiClock :: Maybe (DiffTime, IO AbsoluteTime) #

TAI clock, if it exists. Note that it is unlikely to be set correctly, without due care and attention.