Five weekends: Difference between revisions
m
→Haskell :: Using Data.Time: Tidied
m (→Haskell :: Using Data.Time: Tidied) |
|||
Line 3,177:
====Using Data.Time====
<lang haskell>import Data.
import Data.Time.Calendar.WeekDate (toWeekDate)▼
import Data.List.Split (chunksOf)
import Data.
▲import Data.Time.Calendar.WeekDate (toWeekDate)
---------------- MONTHS WITH FIVE WEEKENDS ---------------
fiveFridayMonths :: Integer -> [(Integer, Int)]
fiveFridayMonths y =
[1 .. 12]
>>= \m ->
[ (y, m)
| isFriday (fromGregorian y m 1)
isFriday :: Day -> Bool
isFriday d = 5 == day
where
main :: IO ()
main = do
Line 3,205:
lean =
concat $
zipWith
(\months year -> [year | null months])
▲ xs
years▼
n = (length . concat) xs
(putStrLn . intercalate "\n\n")
[ "How many five-weekend months 1900-2100 ?",
unlines
, unlines (('\t' :) <$> fmap (unwords . fmap show) (chunksOf 5 lean))▼
( ('\t' :)
<$> fmap
(chunksOf 5 lean)
]</lang>
{{Out}}
|