module Data.Aviation.Casr.Logbook.Hours (
Hours(..)
, zeroHours
, addHours
) where
import Data.Aviation.Casr.Logbook.Printer.Markdown
data Hours =
Hours
Int
Int
deriving (Eq, Ord, Show)
zeroHours ::
Hours
zeroHours =
Hours 0 0
addHours ::
Hours
-> Hours
-> Hours
Hours f1 p1 `addHours` Hours f2 p2 =
let (h, q) = divMod (p1 + p2) 10
in Hours (f1 + f2 + h) q
instance Monoid Hours where
mempty =
zeroHours
mappend =
addHours
instance Markdown Hours where
markdown (Hours t p) =
"* Hours: **`" ++ show t ++ "." ++ show p ++ "`**\n"