Day of the week: Difference between revisions
→{{header|Haskell}}: Updated system.time version output for 64bit systems and current GHC builds (+ hlint hindent)
(→{{header|Haskell}}: Updated system.time version output for 64bit systems and current GHC builds (+ hlint hindent)) |
|||
Line 1,422:
=={{header|Haskell}}==
Using the time library:
<lang haskell>import Data.Time (fromGregorian)
import Data.Time.Calendar.WeekDate▼
▲import Data.Time.Calendar.WeekDate (toWeekDate)
isXmasSunday year = wday == 7▼
where (_,_,wday) = toWeekDate $ fromGregorian year 12 25▼
isXmasSunday :: Integer -> Bool
main = mapM_ putStrLn ["25 December " ++ show year ++ " is Sunday"▼
| year <- [2008..2121], isXmasSunday year]</lang>▼
in wday == 7
main :: IO ()
main =
mapM_
putStrLn
| year <- [2008 .. 2121]
{{out}}
<pre>
Line 1,451 ⟶ 1,459:
</pre>
The built-in System.Time module
<lang haskell>import System.Time
isXmasSunday :: Int -> Bool
isXmasSunday year = ctWDay cal == Sunday
where
cal = toUTCTime $ toClockTime cal'
cal' =
CalendarTime
{
,
,
,
,
,
,
,
,
,
, ctTZ =
, ctIsDST = False
}
main :: IO ()
main = mapM_ putStrLn ["25 December " ++ show year ++ " is Sunday"▼
main =
| year <- [2008..2121], isXmasSunday year]</lang>▼
mapM_
putStrLn
| year <- [2008 .. 2121]
{{out}} on 32-bit machine:
<pre>
Line 1,481 ⟶ 1,497:
*** Exception: user error (Time.toClockTime: invalid input)
</pre>
but with 64 bit systems, running current versions of GHC:
<pre>
25 December 2011 is Sunday
25 December 2016 is Sunday
25 December 2022 is Sunday
25 December 2033 is Sunday
25 December 2039 is Sunday
25 December 2044 is Sunday
25 December 2050 is Sunday
25 December 2061 is Sunday
25 December 2067 is Sunday
25 December 2072 is Sunday
25 December 2078 is Sunday
25 December 2089 is Sunday
25 December 2095 is Sunday
25 December 2101 is Sunday
25 December 2107 is Sunday
25 December 2112 is Sunday
25 December 2118 is Sunday</pre>
=={{header|HicEst}}==
|