#!/usr/bin/env perl use strict; use warnings FATAL => 'all'; use 5.010; use Time::Piece; use Time::Seconds; sub main() { my $links = "https://www.principiadiscordia.com/book/41.php\nhttp://calendar.discordipedia.org/\n\n"; # my $salutation = $links . 'Today is '; my $salutation = 'Today is '; my $short_salu = 'Short form: '; my $st_tibs = 59; my @m = ('Chaos', 'Discord', 'Confusion', 'Bureaucracy', 'The Aftermath'); my @ms = ('CH', 'DI', 'CO', 'BU', 'AF'); my @a = ('Sweetmorn', 'Boomtime', 'Pungenday', 'Prickle-Prickle', 'Setting Orange'); my @as = ('SM', 'BT', 'PD', 'PP', 'SO'); my @p = ('Mung', 'Mojo', 'Sya', 'Zara', 'Mala'); my @s = ('Chao', 'Disco', 'Confu', 'Bure', 'Af'); my $now = Time::Piece->new(); my $y = 1166 + $now->year; my $doy = $now->day_of_year; my $dow = 0; # St. Tib's Day check if ($now->is_leap_year) { if ($st_tibs == $now->day_of_year) { say $salutation, "St. Tib's Day, Chaos, YOLD ", $y; say $short_salu, sprintf("%04d", $y), '-CH-ST'; return 0; } $doy-- if ($st_tibs < $now->day_of_year); } my $d = int($doy / 73); my $r = 1 + ($doy % 73); my $w = (1+$r) % 5; my $th = 'th'; if ((10 > $r) || (20 < $r)){ $th = 'st' if (1 == ($r % 10)); $th = 'nd' if (2 == ($r % 10)); $th = 'rd' if (3 == ($r % 10)); } $dow += $doy % 5; say $salutation, $a[$dow], ', ', $r, $th, ' day of ', $m[$d], ', YOLD ', $y; say $short_salu, sprintf("%04d", $y), '-', $ms[$d], '-', sprintf("%02d", $r); if ( 5 == $r) { say ' Celebrate ', $p[$d], 'day, Apostle holyday of the season'; } if (50 == $r) { say ' Celebrate ', $s[$d], 'flux, holyday of the season'; } return 0; } exit(main()); die('NOT_REACHED');