blob: 05cb62cd4b0b508df3b8091f45bd6d1d1bd93324 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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)
|