module Hledger.Flow.DateTime where

import Data.Time.Clock
import Data.Time.Calendar

currentDate :: IO (Integer,Int,Int) -- :: (year,month,day)
currentDate :: IO (Integer, Int, Int)
currentDate = Day -> (Integer, Int, Int)
toGregorian (Day -> (Integer, Int, Int))
-> (UTCTime -> Day) -> UTCTime -> (Integer, Int, Int)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UTCTime -> Day
utctDay (UTCTime -> (Integer, Int, Int))
-> IO UTCTime -> IO (Integer, Int, Int)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> IO UTCTime
getCurrentTime

currentYear :: IO Integer
currentYear :: IO Integer
currentYear = do
  (Integer
y, Int
_, Int
_) <- IO (Integer, Int, Int)
currentDate
  Integer -> IO Integer
forall (m :: * -> *) a. Monad m => a -> m a
return Integer
y