From 1e3285599922c3b6ec009ac641464f3232d59bb8 Mon Sep 17 00:00:00 2001 From: Hendrik Jaeger Date: Tue, 11 Mar 2014 00:21:54 +0100 Subject: On branch master modified: Diddo.hs modified: HMSTime.hs modified: diddohs.hs --- HMSTime.hs | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) (limited to 'HMSTime.hs') diff --git a/HMSTime.hs b/HMSTime.hs index cbe9e09..ce4e3b2 100644 --- a/HMSTime.hs +++ b/HMSTime.hs @@ -1,33 +1,13 @@ module HMSTime -( HMSTime(HMSTime, hours, minutes, seconds) -, secondsToHMS -, hmsTimeStringToHMSTime -, hmsTimeStringToSeconds +( diffTimeToHMSString ) where +import Data.Time.Clock( NominalDiffTime() ) import Text.Printf( printf ) -import Data.List.Split( splitOn ) -data HMSTime = HMSTime { hours :: Integer, minutes :: Integer, seconds :: Integer } - -instance Show HMSTime where - show (HMSTime h m s) = printf "%d:%02d:%02d" h m s - -secondsToHMS :: Integer -> HMSTime -secondsToHMS numSeconds = HMSTime h m s where - (mLeft, s) = numSeconds `divMod` 60 - (h, m) = mLeft `divMod` 60 - -hmsTimeStringToHMSTime :: String -> HMSTime -hmsTimeStringToHMSTime hmsString = HMSTime h m s where - h:m:s:_ = map readInteger $ splitOn ":" hmsString - -hmsTimeToSeconds :: HMSTime -> Integer -hmsTimeToSeconds (HMSTime {hours = h, minutes = m, seconds = s}) = h*3600 + m*60 + s - -hmsTimeStringToSeconds :: String -> Integer -hmsTimeStringToSeconds = hmsTimeToSeconds . hmsTimeStringToHMSTime - -readInteger :: String -> Integer -readInteger x = read x :: Integer +diffTimeToHMSString :: NominalDiffTime -> String +diffTimeToHMSString delta = printf "%d:%02d:%02d" h m s + where + (mLeft, s) = floor delta `divMod` 60 :: (Int, Int) + (h, m) = mLeft `divMod` 60 -- cgit v1.2.3