use integer;
use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK );
-$VERSION = '1.13';
+$VERSION = '1.17';
@ISA = qw( Exporter );
@EXPORT = qw( timegm timelocal );
my $md = $MonthDays[$month];
++$md
- unless $month != 1 or $year % 4 or !( $year % 400 );
+ if $month == 1 && _is_leap_year( $year + 1900 );
croak "Day '$mday' out of range 1..$md" if $mday > $md or $mday < 1;
croak "Hour '$hour' out of range 0..23" if $hour > 23 or $hour < 0;
+ ( SECS_PER_DAY * $days );
}
+sub _is_leap_year {
+ return 0 if $_[0] % 4;
+ return 1 if $_[0] % 100;
+ return 0 if $_[0] % 400;
+
+ return 1;
+}
+
sub timegm_nocheck {
local $Options{no_range_check} = 1;
return &timegm;