Discordian date: Difference between revisions

Content added Content deleted
(→‎{{header|Go}}: library changes)
Line 851: Line 851:
look at [http://www.cs.cmu.edu/~tilt/principia/body.html#applecorps calendar];
look at [http://www.cs.cmu.edu/~tilt/principia/body.html#applecorps calendar];
lern about [http://jubal.westnet.com/hyperdiscordia/discordian_holydays.html holydays]
lern about [http://jubal.westnet.com/hyperdiscordia/discordian_holydays.html holydays]

=={{header|Mathematica}}==
<lang Mathematica>DiscordianDate[y_, m_, d_] := Module[{year = ToString[y + 1166], month = m, day = d},

DMONTHS = {"Chaos", "Discord", "Confusion", "Bureaucracy", "The Aftermath"};
DDAYS = {"Sweetmorn", "Boomtime", "Pungenday", "Prickle-Prickle", "Setting Orange"};
DayOfYear = DateDifference[{y} ,{y, m, d}] + 1;
LeapYearQ = (Mod[#, 4]== 0 && (Mod[#, 100] != 0 || Mod[#, 400] == 0))&@ y;

If [ LeapYearQ && month == 2 && day == 29,
Print["Today is St. Tib's Day, YOLD ", ]
,
If [ LeapYearQ && DayOfYear >= 60, DayOfYear -= 1 ];
{season, dday} = {Quotient[DayOfYear, 73], Mod[DayOfYear, 73]};
Print["Today is ", DDAYS[[Mod[dday,4] + 1]],", ",DMONTHS[[season+1]]," ",dday,", YOLD ",year]
];
]</lang>
Example output:
<pre>DiscordianDate[2012,2,28]
-> Today is Prickle-Prickle, Chaos 59, YOLD 3178

DiscordianDate[2012,2,29]
-> Today is St. Tib's Day, YOLD 3178

DiscordianDate[2012,3,1]
-> Today is Setting Orange, Chaos 60, YOLD 3178</pre>



=={{header|Perl 6}}==
=={{header|Perl 6}}==