{-# OPTIONS_GHC -fno-warn-orphans #-}
module Hcompta.Date.Interval where
-import qualified Data.Fixed
+-- import qualified Data.Fixed -- NOTE: not useful before base >=4.7
import qualified Data.List
-import Data.Maybe (fromJust)
+import Data.Maybe (Maybe(..), fromJust)
import qualified Data.Time.Calendar as Time
import qualified Data.Time.Clock as Time
import qualified Data.Time.Format as Time ()
import qualified Data.Time.LocalTime as Time
+import Prelude ( ($)
+ , Integral(..)
+ , Num(..)
+ )
import Hcompta.Date hiding (year, month, dom, hour, minute, second)
import qualified Hcompta.Date as Date
let hn = Time.addUTCTime 60 ln in
fromJust $ (Interval.<=..<) ln hn
+{- NOTE: Data.Fixed.MkFixed requires base >=4.7
second :: Year -> Month -> DoM -> Hour -> Minute -> Second -> Interval Date
second y m d h n (Data.Fixed.MkFixed s) =
let ly = Time.addGregorianYearsClip (y - 1970) (day nil) in
let ls = Time.addUTCTime (fromInteger $ s) ln in
let hs = Time.addUTCTime 1 ls in
fromJust $ (Interval.<=..<) ls hs
+-}
-- * Slice
let Time.TimeOfDay h n _ = tod d in
minute y m o h n
+{-
second_slice :: Date -> Interval Date
second_slice d =
let (y, m, o) = Date.gregorian d in
let Time.TimeOfDay h n s = tod d in
second y m o h n s
+-}