cron-0.7.2: src/System/Cron/Internal/Schedule.hs
module System.Cron.Internal.Schedule (findNextMinuteDelay') where
import Data.Time
findNextMinuteDelay' :: UTCTime -> (UTCTime, Int)
findNextMinuteDelay' now = (next, delay)
where
oneMinuteLater = addUTCTime oneMinute now
plainMinute = truncateToPlainMinute $ utctDayTime oneMinuteLater
next = oneMinuteLater { utctDayTime = plainMinute }
diff = diffUTCTime next now
delay = round (realToFrac (diff * 1000000) :: Double) :: Int
oneMinute :: NominalDiffTime
oneMinute = 60
truncateToPlainMinute :: DiffTime -> DiffTime
truncateToPlainMinute = fromIntegral . (* 60) . (`quot` 60) . (truncate :: DiffTime -> Integer)