| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Data.Time.Clock.Units
Description
Types for time intervals of various units. Each newtype wraps DiffTime,
 but they have different Num instances. The intent is to use the record
 selectors to write literals with particular units, like this:
>>>milliseconds500 0.5s >>>hours3 10800s >>>minutes1.5 +seconds30 120s
You can also go the other way using the constructors rather than the selectors:
>>>toRational$Minutes(seconds17) 17 % 60 >>>realToFrac(Days(hours12)) ::Double0.5
NOTE: the Real and Fractional instances just essentially add or strip the
 unit label (as  above), so you can't use realToFrac to convert between the
 units types here. Instead try  convertDuration which is less of a foot-gun.
The Read instances for these types mirror the behavior of the RealFrac
 instance wrt numeric literals for convenient serialization (e.g. when working
 with env vars):
>>> read "1.2" :: Milliseconds
Milliseconds {milliseconds = 0.0012s}
Generally, if you need to pass around a duration between functions you should
 use DiffTime directly. However if storing a duration in a type that will be
 serialized, e.g. one having a ToJSON instance, it is better to use one of
 these explicit wrapper types so that it's  obvious what units will be used.
Synopsis
- newtype Seconds = Seconds {}
- newtype Days = Days {}
- newtype Hours = Hours {}
- newtype Minutes = Minutes {}
- newtype Milliseconds = Milliseconds {}
- newtype Microseconds = Microseconds {}
- newtype Nanoseconds = Nanoseconds {}
- newtype TimeUnit (picosPerUnit :: Nat) = TimeUnit DiffTime
- type SecondsP n = n * 1000000000000
- natNum :: forall n a. (KnownNat n, Num a) => a
- class Duration d where- fromDiffTime :: DiffTime -> d
- toDiffTime :: d -> DiffTime
 
- convertDuration :: (Duration x, Duration y) => x -> y
- diffTimeToMicroSeconds :: DiffTime -> Integer
Documentation
Instances
| Eq Seconds Source # | |
| Fractional Seconds Source # | |
| Num Seconds Source # | |
| Ord Seconds Source # | |
| Defined in Data.Time.Clock.Units | |
| Read Seconds Source # | |
| Real Seconds Source # | |
| Defined in Data.Time.Clock.Units Methods toRational :: Seconds -> Rational # | |
| RealFrac Seconds Source # | |
| Show Seconds Source # | |
| Hashable Seconds Source # | |
| Defined in Data.Time.Clock.Units | |
| FromJSON Seconds Source # | |
| Defined in Data.Time.Clock.Units | |
| ToJSON Seconds Source # | |
| Defined in Data.Time.Clock.Units Methods toEncoding :: Seconds -> Encoding toJSONList :: [Seconds] -> Value toEncodingList :: [Seconds] -> Encoding | |
| Duration Seconds Source # | |
| Defined in Data.Time.Clock.Units | |
| FromEnv Seconds Source # | |
Instances
| Eq Days Source # | |
| Fractional Days Source # | |
| Num Days Source # | |
| Ord Days Source # | |
| Read Days Source # | |
| Real Days Source # | |
| Defined in Data.Time.Clock.Units Methods toRational :: Days -> Rational # | |
| RealFrac Days Source # | |
| Show Days Source # | |
| Hashable Days Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Days Source # | |
| Defined in Data.Time.Clock.Units | |
Instances
| Eq Hours Source # | |
| Fractional Hours Source # | |
| Num Hours Source # | |
| Ord Hours Source # | |
| Read Hours Source # | |
| Real Hours Source # | |
| Defined in Data.Time.Clock.Units Methods toRational :: Hours -> Rational # | |
| RealFrac Hours Source # | |
| Show Hours Source # | |
| Hashable Hours Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Hours Source # | |
| Defined in Data.Time.Clock.Units | |
Instances
| Eq Minutes Source # | |
| Fractional Minutes Source # | |
| Num Minutes Source # | |
| Ord Minutes Source # | |
| Defined in Data.Time.Clock.Units | |
| Read Minutes Source # | |
| Real Minutes Source # | |
| Defined in Data.Time.Clock.Units Methods toRational :: Minutes -> Rational # | |
| RealFrac Minutes Source # | |
| Show Minutes Source # | |
| Hashable Minutes Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Minutes Source # | |
| Defined in Data.Time.Clock.Units | |
newtype Milliseconds Source #
Constructors
| Milliseconds | |
| Fields | |
Instances
newtype Microseconds Source #
Constructors
| Microseconds | |
| Fields | |
Instances
newtype Nanoseconds Source #
Constructors
| Nanoseconds | |
| Fields | |
Instances
class Duration d where Source #
Duration types isomorphic to DiffTime, powering convertDuration.
Instances
| Duration NominalDiffTime Source # | |
| Defined in Data.Time.Clock.Units Methods fromDiffTime :: DiffTime -> NominalDiffTime Source # toDiffTime :: NominalDiffTime -> DiffTime Source # | |
| Duration DiffTime Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Nanoseconds Source # | |
| Defined in Data.Time.Clock.Units Methods fromDiffTime :: DiffTime -> Nanoseconds Source # toDiffTime :: Nanoseconds -> DiffTime Source # | |
| Duration Microseconds Source # | |
| Defined in Data.Time.Clock.Units Methods fromDiffTime :: DiffTime -> Microseconds Source # toDiffTime :: Microseconds -> DiffTime Source # | |
| Duration Milliseconds Source # | |
| Defined in Data.Time.Clock.Units Methods fromDiffTime :: DiffTime -> Milliseconds Source # toDiffTime :: Milliseconds -> DiffTime Source # | |
| Duration Minutes Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Hours Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Days Source # | |
| Defined in Data.Time.Clock.Units | |
| Duration Seconds Source # | |
| Defined in Data.Time.Clock.Units | |
convertDuration :: (Duration x, Duration y) => x -> y Source #
Safe conversion between duration units.