#!/usr/bin/perl -w use strict; sub day_of_week { my ($year, $month, $day) = @_; my @offset = (0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4); $year -= $month < 3; return ($year + int($year/4) - int($year/100) + int($year/400) + $offset[$month-1] + $day) % 7; } my $i=0; for(my $time=1; $time<2**31; $time+=86400) { my ($mday,$mon,$year,$wday)=(localtime($time))[3..6]; $mon++; $year+=1900; my $day=day_of_week($year,$mon,$mday); # progress info... print ((scalar localtime($time))," $day, $wday\n") unless ($i++%1000); if($day != $wday) { print "Mismatch between sub ($day) and localtime ($wday) for ", (scalar localtime($time)),"\n"; } }