From e6269b6750d50c2f72bf534e32c020f0554705a7 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 29 Nov 2015 14:43:06 +0100 Subject: Use next week range to compute next week age and next week day of birthdates --- src/Model/Birthdate.hs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'src/Model/Birthdate.hs') diff --git a/src/Model/Birthdate.hs b/src/Model/Birthdate.hs index f871860..96783a7 100644 --- a/src/Model/Birthdate.hs +++ b/src/Model/Birthdate.hs @@ -5,13 +5,13 @@ module Model.Birthdate , renderBirthdate , fullname , age - , ageNextWeek , filterBirthdayAt - , filterBirthdayBetween + , filterBirthdayInside ) where import Data.Text (Text) import qualified Data.Text as T +import Data.Maybe (isJust) import Model.Date @@ -36,18 +36,8 @@ fullname d = T.concat [firstname d, " ", lastname d] age :: Date -> Birthdate -> Int age currentDate birthdate = yearsGap currentDate (date birthdate) -ageNextWeek :: Date -> Birthdate -> Int -ageNextWeek currentDate birthdate = - (+1) $ (daysGap currentDate (date birthdate)) `div` 365 - filterBirthdayAt :: Date -> [Birthdate] -> [Birthdate] filterBirthdayAt d = filter (sameDayAndMonth d . date) -filterBirthdayBetween :: Date -> Date -> [Birthdate] -> [Birthdate] -filterBirthdayBetween begin end = - filter (\bd -> - let d = date bd - in ( begin `isBeforeOrEqualDayAndMonth` d - && d `isBeforeOrEqualDayAndMonth` end - ) - ) +filterBirthdayInside :: [Date] -> [Birthdate] -> [Birthdate] +filterBirthdayInside dates = filter (isJust . dayAndMonthInRange dates . date) -- cgit v1.2.3