License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Data.Hourglass.Epoch
Description
Epoch tracking
Synopsis
- newtype ElapsedSince epoch = ElapsedSince Seconds
- data ElapsedSinceP epoch = ElapsedSinceP !(ElapsedSince epoch) !NanoSeconds
- class Epoch epoch where
- epochName :: epoch -> String
- epochDiffToUnix :: epoch -> Seconds
- data UnixEpoch = UnixEpoch
- data WindowsEpoch = WindowsEpoch
computer time tracking with various epoch
newtype ElapsedSince epoch Source #
A number of seconds elapsed since an epoch.
Constructors
ElapsedSince Seconds |
Instances
Eq (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods (==) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool (/=) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool | |
Data epoch => Data (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ElapsedSince epoch -> c (ElapsedSince epoch) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ElapsedSince epoch) toConstr :: ElapsedSince epoch -> Constr dataTypeOf :: ElapsedSince epoch -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ElapsedSince epoch)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ElapsedSince epoch)) gmapT :: (forall b. Data b => b -> b) -> ElapsedSince epoch -> ElapsedSince epoch gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSince epoch -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSince epoch -> r gmapQ :: (forall d. Data d => d -> u) -> ElapsedSince epoch -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ElapsedSince epoch -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ElapsedSince epoch -> m (ElapsedSince epoch) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSince epoch -> m (ElapsedSince epoch) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSince epoch -> m (ElapsedSince epoch) | |
Num (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods (+) :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch (-) :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch (*) :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch negate :: ElapsedSince epoch -> ElapsedSince epoch abs :: ElapsedSince epoch -> ElapsedSince epoch signum :: ElapsedSince epoch -> ElapsedSince epoch fromInteger :: Integer -> ElapsedSince epoch | |
Ord (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods compare :: ElapsedSince epoch -> ElapsedSince epoch -> Ordering (<) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool (<=) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool (>) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool (>=) :: ElapsedSince epoch -> ElapsedSince epoch -> Bool max :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch min :: ElapsedSince epoch -> ElapsedSince epoch -> ElapsedSince epoch | |
Read (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods readsPrec :: Int -> ReadS (ElapsedSince epoch) readList :: ReadS [ElapsedSince epoch] readPrec :: ReadPrec (ElapsedSince epoch) readListPrec :: ReadPrec [ElapsedSince epoch] | |
Show (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods showsPrec :: Int -> ElapsedSince epoch -> ShowS show :: ElapsedSince epoch -> String showList :: [ElapsedSince epoch] -> ShowS | |
NFData (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods rnf :: ElapsedSince epoch -> () | |
Epoch epoch => Time (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods timeFromElapsedP :: ElapsedP -> ElapsedSince epoch Source # timeFromElapsed :: Elapsed -> ElapsedSince epoch Source # | |
Epoch epoch => Timeable (ElapsedSince epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods timeGetElapsedP :: ElapsedSince epoch -> ElapsedP Source # timeGetElapsed :: ElapsedSince epoch -> Elapsed Source # timeGetNanoSeconds :: ElapsedSince epoch -> NanoSeconds Source # |
data ElapsedSinceP epoch Source #
A number of seconds and nanoseconds elapsed since an epoch.
Constructors
ElapsedSinceP !(ElapsedSince epoch) !NanoSeconds |
Instances
Eq (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods (==) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool (/=) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool | |
Data epoch => Data (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ElapsedSinceP epoch -> c (ElapsedSinceP epoch) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ElapsedSinceP epoch) toConstr :: ElapsedSinceP epoch -> Constr dataTypeOf :: ElapsedSinceP epoch -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ElapsedSinceP epoch)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ElapsedSinceP epoch)) gmapT :: (forall b. Data b => b -> b) -> ElapsedSinceP epoch -> ElapsedSinceP epoch gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSinceP epoch -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ElapsedSinceP epoch -> r gmapQ :: (forall d. Data d => d -> u) -> ElapsedSinceP epoch -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ElapsedSinceP epoch -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ElapsedSinceP epoch -> m (ElapsedSinceP epoch) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSinceP epoch -> m (ElapsedSinceP epoch) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ElapsedSinceP epoch -> m (ElapsedSinceP epoch) | |
Num (ElapsedSinceP e) Source # | |
Defined in Data.Hourglass.Epoch Methods (+) :: ElapsedSinceP e -> ElapsedSinceP e -> ElapsedSinceP e (-) :: ElapsedSinceP e -> ElapsedSinceP e -> ElapsedSinceP e (*) :: ElapsedSinceP e -> ElapsedSinceP e -> ElapsedSinceP e negate :: ElapsedSinceP e -> ElapsedSinceP e abs :: ElapsedSinceP e -> ElapsedSinceP e signum :: ElapsedSinceP e -> ElapsedSinceP e fromInteger :: Integer -> ElapsedSinceP e | |
Ord (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods compare :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Ordering (<) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool (<=) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool (>) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool (>=) :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> Bool max :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> ElapsedSinceP epoch min :: ElapsedSinceP epoch -> ElapsedSinceP epoch -> ElapsedSinceP epoch | |
Read (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods readsPrec :: Int -> ReadS (ElapsedSinceP epoch) readList :: ReadS [ElapsedSinceP epoch] readPrec :: ReadPrec (ElapsedSinceP epoch) readListPrec :: ReadPrec [ElapsedSinceP epoch] | |
Show (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods showsPrec :: Int -> ElapsedSinceP epoch -> ShowS show :: ElapsedSinceP epoch -> String showList :: [ElapsedSinceP epoch] -> ShowS | |
NFData (ElapsedSinceP e) Source # | |
Defined in Data.Hourglass.Epoch Methods rnf :: ElapsedSinceP e -> () | |
Epoch epoch => Time (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods timeFromElapsedP :: ElapsedP -> ElapsedSinceP epoch Source # timeFromElapsed :: Elapsed -> ElapsedSinceP epoch Source # | |
Epoch epoch => Timeable (ElapsedSinceP epoch) Source # | |
Defined in Data.Hourglass.Epoch Methods timeGetElapsedP :: ElapsedSinceP epoch -> ElapsedP Source # timeGetElapsed :: ElapsedSinceP epoch -> Elapsed Source # timeGetNanoSeconds :: ElapsedSinceP epoch -> NanoSeconds Source # |
Epoch
class Epoch epoch where Source #
epoch related.
We use the well known Unix epoch as the reference timezone for doing conversion between epochs.
Each methods of this typeclass should not use the actual value, but only get the information needed from the type itself.
Methods
epochName :: epoch -> String Source #
The name of this epoch
epochDiffToUnix :: epoch -> Seconds Source #
number of seconds of difference with 1st January 1970.
a negative number means that this epoch start before the unix epoch.
Instances
Epoch WindowsEpoch Source # | |
Defined in Data.Hourglass.Epoch Methods epochName :: WindowsEpoch -> String Source # | |
Epoch UnixEpoch Source # | |
Defined in Data.Hourglass.Epoch |
standard and usual epochs
Unix Epoch, starting 1st January 1970
Constructors
UnixEpoch |
data WindowsEpoch Source #
Windows Epoch, starting 1st January 1601
Constructors
WindowsEpoch |
Instances
Eq WindowsEpoch Source # | |
Defined in Data.Hourglass.Epoch | |
Show WindowsEpoch Source # | |
Defined in Data.Hourglass.Epoch Methods showsPrec :: Int -> WindowsEpoch -> ShowS show :: WindowsEpoch -> String showList :: [WindowsEpoch] -> ShowS | |
Epoch WindowsEpoch Source # | |
Defined in Data.Hourglass.Epoch Methods epochName :: WindowsEpoch -> String Source # |