#!/usr/bin/perl #this shows where you run out of seconds and the #signed 32 goes negative. $secs_non_leap = 60 * 60 * 24 * 365; # seconds per non-leap year $secs_leap = 60 * 60 * 24 * 366; # seconds per leap year $secs = hex "7FFFFFFF"; # max number a signed 32 can hold foreach $year (1970 .. 2040) { $leap = $year % 4 ? 0 : 1; $secs -= $leap ? $secs_leap : $secs_non_leap; print "$year $secs\n"; }