Discordian date: Difference between revisions

Content added Content deleted
(Added Delphi example)
(Added Algol 68)
Line 695: Line 695:
Setting Orange, day 26 of Bureaucracy in the YOLD 3178
Setting Orange, day 26 of Bureaucracy in the YOLD 3178
Setting Orange, day 73 of The Aftermath in the YOLD 3178</pre>
Setting Orange, day 73 of The Aftermath in the YOLD 3178</pre>

=={{header|ALGOL 68}}==
{{Trans|ALGOL W}} which was itself, {{Trans|MAD}}
<lang algol68>BEGIN # DISCORDIAN DATE CALCULATION - TRANSLATION OF MAD VIA ALGOL W #
INT greg, gmonth, gday, gyear;
[]STRING holys = []STRING( "MUNG", "MOJO", "SYA", "ZARA", "MALA" )[ AT 0 ];
[]STRING holys0 = []STRING( "CHAO", "DISCO", "CONFU", "BURE", "AF" )[ AT 0 ];
[]STRING disday = []STRING( "SWEETMORN", "BOOMTIME", "PUNGENday", "PRICKLE-PRICKLE", "SETTING ORANGE" )[ AT 0 ];
[]STRING disssn = []STRING( "CHAOS", "DISCORD", "CONFUSION", "BUREAUCRACY", "THE AFTERMATH" )[ AT 0 ];
[]INT mlengt = []INT( 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 )[ AT 0 ];
CHAR slash1, slash2;
# input date should contain MM/DD/YYYY in the gregorian calendar #
read( ( gmonth, slash1, gday, slash2, gyear ) );
IF slash1 /= "/" OR slash2 /= "/" THEN print( ( "Invalid date format", newline ) ); stop FI;

IF gmonth = 2 AND gday = 29
THEN print( ( "SAINT TIB'S DAY IN THE Y.O.L.D. ", whole( gyear + 1166, -4 ), newline ) )
ELSE
INT yrday := mlengt[ gmonth ] + gday;
INT season := yrday OVER 73;
INT day := yrday - ( season * 73 );
INT wkday := ( yrday - 1 ) MOD 5;
print( ( disday[ wkday ], ", DAY ", whole( day, -2 ), " OF ", disssn[ season ]
, " IN THE Y.O.L.D ", whole( gyear + 1166, 0 ), newline
)
);
IF day = 5 THEN print( ( "CELEBRATE ", holys[ season ], "DAY" ) )
ELIF day = 50 THEN print( ( "CELEBRATE ", holys0[ season ], "FLUX" ) )
FI
FI
END</lang>
{{out}}
<pre>
11/04/1167
PUNGENday, day 16 OF THE AFTERMATH IN THE Y.O.L.D 2333

08/15/2017
BOOMTIME, DAY 8 OF BUREAUCRACY IN THE Y.O.L.D 3183

12/06/2020
SETTING ORANGE, DAY 48 OF THE AFTERMATH IN THE Y.O.L.D 3186

07/12/1969
PUNGENday, DAY 47 OF CONFUSION IN THE Y.O.L.D 3135

07/05/2005
SWEETMORN, DAY 40 OF CONFUSION IN THE Y.O.L.D 3171

09/26/1995
PRICKLE-PRICKLE, DAY 50 OF BUREAUCRACY IN THE Y.O.L.D 3161
CELEBRATE BUREFLUX

11/30/2021
PRICKLE-PRICKLE, DAY 42 OF THE AFTERMATH IN THE Y.O.L.D 3187
</pre>


=={{header|ALGOL W}}==
=={{header|ALGOL W}}==