statsdi-0.1.0.0: src/Control/Monad/Stats/Util.hs
module Control.Monad.Stats.Util where
import Control.Monad.IO.Class
import Data.Time.Clock.POSIX
getMicrotime :: (MonadIO m) => m Int
getMicrotime = posixToMicros <$> liftIO getPOSIXTime
posixToMicros :: POSIXTime -> Int
posixToMicros = round . (* 1000000.0) . toDouble
getMillitime :: (MonadIO m) => m Int
getMillitime = posixToMillis <$> liftIO getPOSIXTime
posixToMillis :: POSIXTime -> Int
posixToMillis = round . (* 1000.0) . toDouble
toDouble :: (Real n) => n -> Double
toDouble = realToFrac