diff options
author | Joris | 2016-04-04 22:48:33 +0200 |
---|---|---|
committer | Joris | 2016-04-04 22:48:33 +0200 |
commit | d8eedc3e2639f0f50f0554f89dc121da4941d4d1 (patch) | |
tree | 81bd4d0a261b0550a0501ad2f70fa52b4ee21000 /src/Model/Event.hs | |
parent | e66ea0b49c8f7202114df366668598026f211eba (diff) |
Rename birthday to event
Diffstat (limited to 'src/Model/Event.hs')
-rw-r--r-- | src/Model/Event.hs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Model/Event.hs b/src/Model/Event.hs new file mode 100644 index 0000000..e0d536d --- /dev/null +++ b/src/Model/Event.hs @@ -0,0 +1,38 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Model.Event + ( Event(..) + , renderEvent + , age + , filterBirthdayAt + , filterBirthdayInside + ) where + +import Data.Text (Text) +import qualified Data.Text as T +import Data.Maybe (isJust) + +import Model.Date + +data Event = Event + { date :: Date + , name :: Text + } deriving (Eq, Show) + +renderEvent :: Event -> Text +renderEvent event = + T.concat + [ name event + , " (" + , renderDate (date event) + , ")" + ] + +age :: Date -> Event -> Int +age currentDate event = yearsGap currentDate (date event) + +filterBirthdayAt :: Date -> [Event] -> [Event] +filterBirthdayAt d = filter (sameDayAndMonth d . date) + +filterBirthdayInside :: [Date] -> [Event] -> [Event] +filterBirthdayInside dates = filter (isJust . dayAndMonthInRange dates . date) |