time-compat-1.9.2: src/Data/Time/Clock/TAI/Compat.hs
{-# LANGUAGE CPP, DeriveDataTypeable #-}
module Data.Time.Clock.TAI.Compat (
-- * TAI arithmetic
AbsoluteTime,taiEpoch,addAbsoluteTime,diffAbsoluteTime,
taiNominalDayStart,
-- * leap-second map type
LeapSecondMap',
-- * conversion between UTC and TAI with map
utcDayLength,utcToTAITime,taiToUTCTime,
taiClock,
) where
import Data.Time.Orphans ()
import Data.Time.Compat
import Data.Time.Clock.TAI
-- | This type is either 'LeapSecondMap' or 'LeapSecondTable', depending
-- on the version of @time@ (changed in @time-1.7.0@).
#if MIN_VERSION_time(1,7,0)
type LeapSecondMap' = LeapSecondMap
#else
type LeapSecondMap' = LeapSecondTable
#endif
#if !(MIN_VERSION_time(1,8,0))
taiNominalDayStart :: Day -> AbsoluteTime
taiNominalDayStart (ModifiedJulianDay ds) =
addAbsoluteTime (secondsToDiffTime (ds * 86400)) taiEpoch
-- | TAI clock, if it exists. Note that it is unlikely to be set correctly, without due care and attention.
taiClock :: Maybe (DiffTime,IO AbsoluteTime)
taiClock = Nothing
#endif