Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
80
Task/Discordian-date/Prolog/discordian-date.pro
Normal file
80
Task/Discordian-date/Prolog/discordian-date.pro
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
% See https://en.wikipedia.org/wiki/Discordian_calendar
|
||||
|
||||
main:-
|
||||
test(2022, 4, 20),
|
||||
test(2020, 5, 24),
|
||||
test(2020, 2, 29),
|
||||
test(2019, 7, 15),
|
||||
test(2025, 3, 19),
|
||||
test(2017, 12, 8).
|
||||
|
||||
test(Gregorian_year, Gregorian_month, Gregorian_day):-
|
||||
ddate(Gregorian_year, Gregorian_month, Gregorian_day,
|
||||
Discordian_date),
|
||||
format('~|~`0t~d~2+-~|~`0t~d~2+-~|~`0t~d~2+: ~w~n', [Gregorian_year,
|
||||
Gregorian_month, Gregorian_day, Discordian_date]).
|
||||
|
||||
ddate(Gregorian_year, 2, 29, Discordian_date):-
|
||||
convert_year(Gregorian_year, Discordian_year),
|
||||
swritef(Discordian_date, 'St. Tib\'s Day in the YOLD %w',
|
||||
[Discordian_year]),
|
||||
!.
|
||||
ddate(Gregorian_year, Gregorian_month, Gregorian_day,
|
||||
Discordian_date):-
|
||||
convert_year(Gregorian_year, Discordian_year),
|
||||
day_of_year(Gregorian_month, Gregorian_day, Daynum),
|
||||
Season is Daynum//73,
|
||||
Weekday is Daynum mod 5,
|
||||
Day_of_season is 1 + Daynum mod 73,
|
||||
season(Season, Season_name),
|
||||
week_day(Weekday, Day_name),
|
||||
(holy_day(Season, Day_of_season, Holy_day) ->
|
||||
swritef(Discordian_date, '%w, day %w of %w in the YOLD %w. Celebrate %w!',
|
||||
[Day_name, Day_of_season, Season_name, Discordian_year, Holy_day])
|
||||
;
|
||||
swritef(Discordian_date, '%w, day %w of %w in the YOLD %w',
|
||||
[Day_name, Day_of_season, Season_name, Discordian_year])
|
||||
).
|
||||
|
||||
convert_year(Gregorian_year, Discordian_year):-
|
||||
Discordian_year is Gregorian_year + 1166.
|
||||
|
||||
day_of_year(M, D, N):-
|
||||
month_days(M, Days),
|
||||
N is Days + D - 1.
|
||||
|
||||
month_days(1, 0).
|
||||
month_days(2, 31).
|
||||
month_days(3, 59).
|
||||
month_days(4, 90).
|
||||
month_days(5, 120).
|
||||
month_days(6, 151).
|
||||
month_days(7, 181).
|
||||
month_days(8, 212).
|
||||
month_days(9, 243).
|
||||
month_days(10, 273).
|
||||
month_days(11, 304).
|
||||
month_days(12, 334).
|
||||
|
||||
season(0, 'Chaos').
|
||||
season(1, 'Discord').
|
||||
season(2, 'Confusion').
|
||||
season(3, 'Bureacracy').
|
||||
season(4, 'The Aftermath').
|
||||
|
||||
week_day(0, 'Sweetmorn').
|
||||
week_day(1, 'Boomtime').
|
||||
week_day(2, 'Pungenday').
|
||||
week_day(3, 'Prickle-Prickle').
|
||||
week_day(4, 'Setting Orange').
|
||||
|
||||
holy_day(0, 5, 'Mungday').
|
||||
holy_day(0, 50, 'Chaoflux').
|
||||
holy_day(1, 5, 'Mojoday').
|
||||
holy_day(1, 50, 'Discoflux').
|
||||
holy_day(2, 5, 'Syaday').
|
||||
holy_day(2, 50, 'Confuflux').
|
||||
holy_day(3, 5, 'Zaraday').
|
||||
holy_day(3, 50, 'Bureflux').
|
||||
holy_day(4, 5, 'Maladay').
|
||||
holy_day(4, 50, 'Afflux').
|
||||
Loading…
Add table
Add a link
Reference in a new issue