特定の日付が何曜日になるか効率よく計算するための式。
西暦1582年10月15日金曜日(グレゴリオ暦施行日)から有効。
sub getwday ($$$) { my ($year, $month, $day) = @_; if ($month == 1 or $month == 2) { -- $year; $month += 12; } return int( $year + int($year/4) - int($year/100) + int($year/400) + int((13*$month+8)/5) + $day ) % 7; }
print &getwday(2004, 5, 10);
# 1 = monday
結果は0から6までの数字になり、それぞれ日曜日から土曜日に対応します。