| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Data.Time.Units
Description
This module defines types for many useful time periods, as well as mechanisms for converting between them.
Synopsis
- class TimeUnit a where
- data Attosecond
- data Femtosecond
- data Picosecond
- data Nanosecond
- data Microsecond
- data Millisecond
- data Second
- data Minute
- data Hour
- data Day
- data Week
- data Fortnight
- addTime :: (TimeUnit a, TimeUnit b, TimeUnit c) => a -> b -> c
- subTime :: (TimeUnit a, TimeUnit b, TimeUnit c) => a -> b -> c
- convertUnit :: (TimeUnit a, TimeUnit b) => a -> b
- getCPUTimeWithUnit :: TimeUnit a => IO a
Documentation
A generic class that describes all the units of time. We use microseconds here because that tends to be what GHC (at least) tends to use as its system-level minimum tick size.
Minimal complete definition
Methods
toMicroseconds :: a -> Integer #
Converts the given unit of time into microseconds, flooring the value if it comes to a fractional number of microseconds. (In other words: be careful, you may lose precision!)
fromMicroseconds :: Integer -> a #
Converts the given number of microseconds into the unit of time, flooring the value if it comes to a fraction number of the given unit. (In other words: be careful, you may lose precision!)
Instances
| TimeUnit Fortnight # | |
Defined in Data.Time.Units | |
| TimeUnit Week # | |
Defined in Data.Time.Units | |
| TimeUnit Day # | |
Defined in Data.Time.Units | |
| TimeUnit Hour # | |
Defined in Data.Time.Units | |
| TimeUnit Minute # | |
Defined in Data.Time.Units | |
| TimeUnit Second # | |
Defined in Data.Time.Units | |
| TimeUnit Millisecond # | |
Defined in Data.Time.Units | |
| TimeUnit Microsecond # | |
Defined in Data.Time.Units | |
| TimeUnit Nanosecond # | |
Defined in Data.Time.Units | |
| TimeUnit Picosecond # | |
Defined in Data.Time.Units | |
| TimeUnit Femtosecond # | |
Defined in Data.Time.Units | |
| TimeUnit Attosecond # | |
Defined in Data.Time.Units | |
data Attosecond #
Instances
data Femtosecond #
Instances
data Picosecond #
Instances
data Nanosecond #
Instances
data Microsecond #
Instances
data Millisecond #
Instances
Instances
| Enum Second # | |
Defined in Data.Time.Units | |
| Eq Second # | |
| Integral Second # | |
Defined in Data.Time.Units | |
| Data Second # | |
Defined in Data.Time.Units Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Second -> c Second # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Second # toConstr :: Second -> Constr # dataTypeOf :: Second -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Second) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Second) # gmapT :: (forall b. Data b => b -> b) -> Second -> Second # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Second -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Second -> r # gmapQ :: (forall d. Data d => d -> u) -> Second -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Second -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Second -> m Second # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Second -> m Second # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Second -> m Second # | |
| Num Second # | |
| Ord Second # | |
| Read Second # | |
| Real Second # | |
Defined in Data.Time.Units Methods toRational :: Second -> Rational # | |
| Show Second # | |
| Ix Second # | |
| TimeUnit Second # | |
Defined in Data.Time.Units | |
Instances
| Enum Minute # | |
Defined in Data.Time.Units | |
| Eq Minute # | |
| Integral Minute # | |
Defined in Data.Time.Units | |
| Data Minute # | |
Defined in Data.Time.Units Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Minute -> c Minute # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Minute # toConstr :: Minute -> Constr # dataTypeOf :: Minute -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Minute) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Minute) # gmapT :: (forall b. Data b => b -> b) -> Minute -> Minute # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Minute -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Minute -> r # gmapQ :: (forall d. Data d => d -> u) -> Minute -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Minute -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Minute -> m Minute # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Minute -> m Minute # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Minute -> m Minute # | |
| Num Minute # | |
| Ord Minute # | |
| Read Minute # | |
| Real Minute # | |
Defined in Data.Time.Units Methods toRational :: Minute -> Rational # | |
| Show Minute # | |
| Ix Minute # | |
| TimeUnit Minute # | |
Defined in Data.Time.Units | |
Instances
| Enum Hour # | |
| Eq Hour # | |
| Integral Hour # | |
| Data Hour # | |
Defined in Data.Time.Units Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Hour -> c Hour # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Hour # dataTypeOf :: Hour -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Hour) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Hour) # gmapT :: (forall b. Data b => b -> b) -> Hour -> Hour # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Hour -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Hour -> r # gmapQ :: (forall d. Data d => d -> u) -> Hour -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Hour -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Hour -> m Hour # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Hour -> m Hour # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Hour -> m Hour # | |
| Num Hour # | |
| Ord Hour # | |
| Read Hour # | |
| Real Hour # | |
Defined in Data.Time.Units Methods toRational :: Hour -> Rational # | |
| Show Hour # | |
| Ix Hour # | |
| TimeUnit Hour # | |
Defined in Data.Time.Units | |
Instances
| Enum Day # | |
| Eq Day # | |
| Integral Day # | |
| Data Day # | |
Defined in Data.Time.Units Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Day -> c Day # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Day # dataTypeOf :: Day -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Day) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Day) # gmapT :: (forall b. Data b => b -> b) -> Day -> Day # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Day -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Day -> r # gmapQ :: (forall d. Data d => d -> u) -> Day -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Day -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Day -> m Day # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Day -> m Day # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Day -> m Day # | |
| Num Day # | |
| Ord Day # | |
| Read Day # | |
| Real Day # | |
Defined in Data.Time.Units Methods toRational :: Day -> Rational # | |
| Show Day # | |
| Ix Day # | |
| TimeUnit Day # | |
Defined in Data.Time.Units | |
Instances
| Enum Week # | |
| Eq Week # | |
| Integral Week # | |
| Data Week # | |
Defined in Data.Time.Units Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Week -> c Week # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Week # dataTypeOf :: Week -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Week) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Week) # gmapT :: (forall b. Data b => b -> b) -> Week -> Week # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Week -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Week -> r # gmapQ :: (forall d. Data d => d -> u) -> Week -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Week -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Week -> m Week # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Week -> m Week # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Week -> m Week # | |
| Num Week # | |
| Ord Week # | |
| Read Week # | |
| Real Week # | |
Defined in Data.Time.Units Methods toRational :: Week -> Rational # | |
| Show Week # | |
| Ix Week # | |
| TimeUnit Week # | |
Defined in Data.Time.Units | |
Instances
addTime :: (TimeUnit a, TimeUnit b, TimeUnit c) => a -> b -> c #
Add two times together to get a useful third time unit. As per usual, you'll want to make sure that you are careful regarding precision. This function goes through microseconds as an intermediary form.
subTime :: (TimeUnit a, TimeUnit b, TimeUnit c) => a -> b -> c #
Subtract the second time from the first, to get a useful third time unit. As per usual, you'll want to make sure that you are careful regarding precision. This function goes through microseconds as an intermediary form.
convertUnit :: (TimeUnit a, TimeUnit b) => a -> b #
Convert one time unit to another. Note that if you move from a smaller time unit to a larger one, or between two time units smaller than a microsecond, you will lose precision.
getCPUTimeWithUnit :: TimeUnit a => IO a #
Get the current CPU time in your favorite units. This is probably not very useful in itself, but is likely useful for comparison purposes ...