-- You are given the following information, but you may prefer to do some research for yourself. -- -- 1 Jan 1900 was a Monday. -- Thirty days has September, -- April, June and November. -- All the rest have thirty-one, -- Saving February alone, -- Which has twenty-eight, rain or shine. -- And on leap years, twenty-nine. -- A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400. -- -- How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)? import Data.Time.Calendar (Day, DayOfWeek(Sunday), dayOfWeek, fromGregorian) countSundaysFirst :: Day -> Day -> Int countSundaysFirst start end = let days = [start .. end] in length $ filter (\x -> dayOfWeek x == Sunday && [last (init (show x)), last (show x)] == "01") days main = do let startDate = fromGregorian 1901 1 1 endDate = fromGregorian 2000 12 31 result = countSundaysFirst startDate endDate putStrLn $ "Project Euler, Problem 19\n" ++ "Answer: " ++ show result