aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-019/stuart-little/haskell/ch-1.hs5
1 files 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