hourglass-0.2.8: simple performant time related library

License | BSD-style
Maintainer | Nicolas DI PRIMA <nicolas@di-prima.fr>
Safe Haskell | None
Language | Haskell2010

Data.Hourglass.Compat

Description

Basic Time conversion compatibility.

This module aims to help conversion between the types from the package time to the package hourglass.

Example of use (extracted from file ExampleTimeCompat.hs):

    import Data.Hourglass        as H
    import Data.Hourglass.Compat as C
    import Data.Time             as T

    transpose :: T.ZonedTime
              -> H.LocalTime H.DateTime
    transpose oldTime =
        H.localTime
            offsetTime
            (H.DateTime newDate timeofday)
      where
        newDate :: H.Date
        newDate = C.dateFromTAIEpoch $ T.toModifiedJulianDay $ T.localDay $ T.zonedTimeToLocalTime oldTime

        timeofday :: H.TimeOfDay
        timeofday = C.diffTimeToTimeOfDay $ T.timeOfDayToTime $ T.localTimeOfDay $ T.zonedTimeToLocalTime oldTime

        offsetTime = H.TimezoneOffset $ fromIntegral $ T.timeZoneMinutes $ T.zonedTimeZone oldTime

Synopsis

- dateFromPOSIXEpoch :: Integer -> Date
- dateFromTAIEpoch :: Integer -> Date
- diffTimeToTimeOfDay :: Real t => t -> TimeOfDay

# Documentation

dateFromPOSIXEpoch

Arguments

:: Integer | number of days since POSIX Epoch
-> Date |

Convert an integer which represent the Number of days (To/From) POSIX Epoch to a Date (POSIX Epoch is 1970-01-01).

dateFromTAIEpoch

Arguments

:: Integer | number of days since TAI Epoch
-> Date |

Convert an integer which represents the Number of days (To/From) TAI Epoch This function allows use of the package time to easily convert the Day into the Hourglass Date representation (TAI Epoch is 1858-11-17).

This function allows user to easily convert a Data.Time.Calendar.Day into Date

    import qualified Data.Time.Calendar as T

    timeDay :: T.Day

    dateFromTAIEpoch $ T.toModifiedJulianDay timeDay

diffTimeToTimeOfDay

Arguments

:: Real t |
=> t | number of seconds of the time of the day
-> TimeOfDay |

Convert of differential of time of a day. (it convers a Data.Time.Clock.DiffTime into a TimeOfDay)

Example with DiffTime type from time:

    import qualified Data.Time.Clock as T

    difftime :: T.DiffTime

    diffTimeToTimeOfDay difftime

Example with the TimeOfDay type from time:

    import qualified Data.Time.Clock as T

    timeofday :: T.TimeOfDay

    diffTimeToTimeOfDay $ T.timeOfDayToTime timeofday