From 0fe906ae7453aa684e998bbcc7a78b62d84f0206 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sun, 6 Apr 2014 22:55:16 +0200 Subject: Show resume and projects from a configuration file --- src/View/Interval.hs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/View/Interval.hs (limited to 'src/View/Interval.hs') diff --git a/src/View/Interval.hs b/src/View/Interval.hs new file mode 100644 index 0000000..05cb62c --- /dev/null +++ b/src/View/Interval.hs @@ -0,0 +1,39 @@ +module View.Interval + ( renderDurationAndInterval + , renderYearInterval + , renderDuration + ) where + +import Data.Maybe (fromMaybe) + +import Model.Date +import Model.Translation.Language +import qualified Model.Translation.Key as K +import Model.Translation.Message + +renderDurationAndInterval :: Language -> Date -> Date -> Maybe Date -> String +renderDurationAndInterval language currentDate beginDate mbEndDate = + let duration = renderDuration language beginDate (fromMaybe currentDate mbEndDate) + interval = renderYearInterval language beginDate mbEndDate + in duration ++ ", " ++ interval + +renderDuration :: Language -> Date -> Date -> String +renderDuration language d1 d2 = + let (years, months) = yearAndMonthDiff d1 d2 + renderYears = (show years) ++ " " ++ (getMessage (K.YearText years) language) + renderMonths = (show months) ++ " " ++ (getMessage (K.MonthText months) language) + spaceAnd = " " ++ (getMessage K.And language) ++ " " + in if years > 0 then + renderYears ++ (if months > 0 then spaceAnd ++ renderMonths else "") + else + renderMonths + +renderYearInterval :: Language -> Date -> (Maybe Date) -> String +renderYearInterval language beginDate Nothing = + (getMessage K.Since language) ++ " " ++ (show . year $ beginDate) +renderYearInterval language beginDate (Just endDate) = + let beginYear = year beginDate + endYear = year endDate + in if beginYear == endYear + then show beginYear + else (show beginYear) ++ " " ++ (getMessage K.To language) ++ " " ++ (show endYear) -- cgit v1.2.3