Time formatting in Haskell
showTime :: Int -> Int -> String
showTime hours minutes
| hours == 0 = "12" ++ ":" ++ showMin ++ " am"
| hours <= 11 = (show hours) ++ ":" ++ showMin ++ " am"
| hours == 12 = (show hours) ++ ":" ++ showMin ++ " pm"
| otherwise = (show (hours - 12)) ++ ":" ++ showMin ++ " pm"
where
showMin
| minutes < 10 = "0" ++ show minutes
| otherwise = show minutes
Main> showTime 13 37
"1:37 pm"