{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
module Hcompta.Model.Date where
-import Data.Data
+import Data.Data
+import qualified Data.Time.LocalTime as Time (ZonedTime(..), utc, utcToZonedTime, zonedTimeToUTC)
import qualified Data.Time.Calendar as Time (Day)
-import qualified Data.Time.Clock as Time (UTCTime)
import qualified Data.Time.Format as Time ()
import qualified Data.Time.Clock.POSIX as Time (posixSecondsToUTCTime)
-import Data.Typeable ()
+import qualified Data.Time.Clock as Time (UTCTime)
+import Data.Typeable ()
-- * The 'Date' type
type Date
- = Time.UTCTime
+ = Time.ZonedTime
+deriving instance Eq Date
-null :: Date
-null = Time.posixSecondsToUTCTime 0
+nil :: Date
+nil = Time.utcToZonedTime Time.utc $ Time.posixSecondsToUTCTime 0
data Interval
= Interval_None
type Year
= Integer
+
+-- * The 'UTC' type
+
+type UTC = Time.UTCTime
+
+to_UTC :: Date -> UTC
+to_UTC = Time.zonedTimeToUTC