sub days_since_1900 { use integer; my ($d, $m, $y) = @_; # $d: 1-based Day of the month (1..31) # $m: 0-based Month (Jan=0..Dec=11) # $y: 2 or 4 digit year $y += 1900 if $y < 1000; my $i = ($m + 10) % 12; my $j = $y - $i/10; return $d + 365*$j + $j/4 - $j/100 + $j/400 + ($i*306 + 5)/10 - 693902; }