From: Hendrik Jaeger Date: Mon, 23 Dec 2013 23:14:12 +0000 (+0100) Subject: On branch master X-Git-Tag: v0.1~11 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=d38cc424b83a0240b466f41ec1fe7521aba2d64e;hp=aa7fd5c65535efa95dd0ea0a320aeac679c6dfa7;p=user%2Fhenk%2Fcode%2Fhaskell%2Fdiddohs.git On branch master modified: diddohs.hs CHANGED: cleanup and simplification --- diff --git a/diddohs.hs b/diddohs.hs index 60beb31..f54ec2d 100644 --- a/diddohs.hs +++ b/diddohs.hs @@ -15,16 +15,27 @@ data DiddoOpts = DiddoOpts , inFile :: String } +calculateDeltas :: [DateTime] -> [Integer] +calculateDeltas dateTimes = zipWith diffSeconds dateTimes ((startOfDay $ head dateTimes) : init dateTimes) + +parseDateTimeFormat :: String -> String -> DateTime +parseDateTimeFormat format = fromMaybe (error "Input data broken.") . parseDateTime format + +startOfDay :: DateTime -> DateTime +startOfDay = fromJust . parseDateTime "%x" . formatDateTime "%x" + mainWithOpts :: DiddoOpts -> IO () -mainWithOpts opts = do - [timestrings_finish - , entries - ] <- transpose . map (splitOn ";") . lines <$> readFile (inFile opts) - let utcTimes_finish = map (fromMaybe (error "Input data broken.") . parseDateTime (inDateFmt opts)) timestrings_finish - entry_deltas_HMMSS = zipWith (\x y -> secondsToHMS $ diffSeconds x y) utcTimes_finish (startOfTime : init utcTimes_finish) - diddos_summarized = zipWith4 DiddoEntry ("" : init timestrings_finish) timestrings_finish entry_deltas_HMMSS entries - - mapM_ print diddos_summarized +mainWithOpts opts = + do + [ timeStrings + , entries + ] <- transpose . map (splitOn ";") . lines <$> readFile (inFile opts) + + let + deltasHMS = map secondsToHMS $ calculateDeltas $ map (parseDateTimeFormat (inDateFmt opts)) timeStrings + diddos_summarized = zipWith4 DiddoEntry ("" : init timeStrings) timeStrings deltasHMS entries + + mapM_ print diddos_summarized main :: IO () main = execParser opts >>= mainWithOpts