plailude-0.2.1: src/Data/Time/Conversion.hs
{- |
Module : $Header$
Description : Converting between time units.
Copyright : (c) plaimi 2014
License : GPL-3
Maintainer : plailude@plaimi.net
-} module Data.Time.Conversion where
import qualified Data.Time.Calendar as C
import Data.Time.Units
(Day
,Hour
,Minute
,Month
,Second (MkSecond)
,Year
,timeVal)
fromGregorian :: Year y -> Month mo -> Day d -> C.Day
-- | fromGregorian is a wrapper for Data.Time.Calendar.fromGregorian, which
-- lets us pass our 'Year' - 'Month' - 'Day' structures. It calls
-- Data.Time.Calendar.fromGregorian with the appropriate types, and returns
-- a Data.Time.Calendar.Day.
fromGregorian y mo s = C.fromGregorian (timeVal y) (timeVal mo) (timeVal s)
asSeconds :: Hour h -> Minute m -> Second s -> Second t
-- | asSeconds take some 'TimeUnit's and convert them to 'Second's.
asSeconds h m s = MkSecond $ 3600 * timeVal h + 60 * timeVal m + timeVal s