Discordian date: Difference between revisions

Content added Content deleted
(→‎{{header|Haskell}}: correct for leap year)
(→‎{{header|Haskell}}: no ifthenelse + another leapyear exanple)
Line 14: Line 14:
let doy = monthAndDayToDayOfYear (isLeapYear y) m d
let doy = monthAndDayToDayOfYear (isLeapYear y) m d
(season, dday) = divMod doy 73
(season, dday) = divMod doy 73
dom = if isLeapYear y && m >2 then dday-1 else dday
dos = dday - fromEnum (isLeapYear y && m >2)
dDate
dDate
| isLeapYear y && m==2 && d==29 = "St. Tib's Day, " ++ show (y+1166) ++ " YOLD"
| isLeapYear y && m==2 && d==29 = "St. Tib's Day, " ++ show (y+1166) ++ " YOLD"
| otherwise = seasons!!season ++ " " ++ show dom ++ ", " ++ show (y+1166) ++ " YOLD"
| otherwise = seasons!!season ++ " " ++ show dos ++ ", " ++ show (y+1166) ++ " YOLD"
putStrLn dDate</lang>

putStrLn dDate
</lang>
Examples:
Examples:
<pre>*Main> mapM_ discordianDate [(2012,2,28),(2012,2,29),(2010,9,2),(2010,12,6)]
<pre>*Main> mapM_ discordianDate [(2012,2,28),(2012,2,29),(2012,3,1),(2010,9,2),(2010,12,6)]
Chaos 59, 3178 YOLD
Chaos 59, 3178 YOLD
St. Tib's Day, 3178 YOLD
St. Tib's Day, 3178 YOLD
Chaos 60, 3178 YOLD
Bureaucracy 26, 3176 YOLD
Bureaucracy 26, 3176 YOLD
The_Aftermath 48, 3176 YOLD</pre>
The_Aftermath 48, 3176 YOLD</pre>

In GHCi we can also execute shell commands.
In GHCi we can also execute shell commands.
* Using Linux utility ddate
* Using Linux utility ddate