From 01cbd13f9bc5b4793d9a7fedacb4398d28c793fa Mon Sep 17 00:00:00 2001 From: chirvasitua Date: Sun, 17 Jan 2021 20:35:42 -0500 Subject: account for invalid dates in 019 ch-1 --- challenge-019/stuart-little/haskell/ch-1.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/challenge-019/stuart-little/haskell/ch-1.hs b/challenge-019/stuart-little/haskell/ch-1.hs index 9cc320f7e0..fe12e87591 100755 --- a/challenge-019/stuart-little/haskell/ch-1.hs +++ b/challenge-019/stuart-little/haskell/ch-1.hs @@ -4,11 +4,12 @@ import Data.List (intersect,) import Data.List.Utils (countElem,) -import Data.Time.Calendar (DayOfWeek( Friday,Saturday,Sunday ),dayOfWeek,fromGregorian,toGregorian,) +import Data.Maybe (isJust,fromJust,) +import Data.Time.Calendar (DayOfWeek( Friday,Saturday,Sunday ),dayOfWeek,fromGregorianValid,toGregorian,) import Data.Time.Clock (getCurrentTime,utctDay,) nrWeekends :: Integer -> Int -> Int -nrWeekends y m = minimum $ (\l -> map (\x -> countElem x l) [Friday,Saturday,Sunday]) $ map (dayOfWeek.(fromGregorian y m)) [1..31] +nrWeekends y m = minimum $ (\l -> map (\x -> countElem x l) [Friday,Saturday,Sunday]) $ map (dayOfWeek.fromJust) $ filter isJust $ map (fromGregorianValid y m) [1..31] main = do curY <- getCurrentTime >>= return.(\(y,_,_)->y).toGregorian.utctDay -- cgit