#!/usr/bin/perl use strict; use warnings; use Date::Calc qw(check_date Add_Delta_Days Monday_of_Week Week_of_Year Compress Today Date_to_Text Weeks_in_Year); if (check_date(@ARGV)) { # If there are 52 weeks in the year, I have odd Fridays off. # If there are 53, I have even Fridays off. my $mod = (Weeks_in_Year($ARGV[1]) eq 52) ? 2 : 1; my @friday = Add_Delta_Days(Monday_of_Week(Week_of_Year(@ARGV)), 4); my ($week, $year) = Week_of_Year(@friday); my $present = Compress(@friday) > Compress(Today()); printf "You %s have %s off.\n", ($present ? "DO" : "DID") . ($week % $mod ? "" : "N'T"), Date_to_Text(@friday); } else { print "Usage.\n"; }