diff options
author | Michael G. Schwern <schwern@pobox.com> | 2000-12-05 16:23:28 -0500 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2000-12-06 16:09:09 +0000 |
commit | b75c8c73cd7f3c92a16e03fb046f4e2a99363bc7 (patch) | |
tree | 5fb2cf9e3d6c40bda2bc9505b5cb8026acdb24dc /lib/Time | |
parent | d2ab394d8cfda924d5c38dd9722ad367a06ffeca (diff) | |
download | perl-b75c8c73cd7f3c92a16e03fb046f4e2a99363bc7.tar.gz |
$VERSION crusade, strict, tests, etc... all over lib/
Message-ID: <20001205212328.C6473@blackrider.aocn.com>
Carp::Heavy parts not very applicable because of recent changes.
p4raw-id: //depot/perl@8013
Diffstat (limited to 'lib/Time')
-rw-r--r-- | lib/Time/Local.pm | 84 | ||||
-rw-r--r-- | lib/Time/tm.pm | 2 |
2 files changed, 46 insertions, 40 deletions
diff --git a/lib/Time/Local.pm b/lib/Time/Local.pm index a4808849b0..9c81209ad3 100644 --- a/lib/Time/Local.pm +++ b/lib/Time/Local.pm @@ -2,23 +2,25 @@ package Time::Local; require 5.000; require Exporter; use Carp; +use strict; -@ISA = qw( Exporter ); -@EXPORT = qw( timegm timelocal ); -@EXPORT_OK = qw( timegm_nocheck timelocal_nocheck ); +our $VERSION = '1.00'; +our @ISA = qw( Exporter ); +our @EXPORT = qw( timegm timelocal ); +our @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck ); # Set up constants - $SEC = 1; - $MIN = 60 * $SEC; - $HR = 60 * $MIN; - $DAY = 24 * $HR; +our $SEC = 1; +our $MIN = 60 * $SEC; +our $HR = 60 * $MIN; +our $DAY = 24 * $HR; # Determine breakpoint for rolling century - my $thisYear = (localtime())[5]; - $nextCentury = int($thisYear / 100) * 100; - $breakpoint = ($thisYear + 50) % 100; - $nextCentury += 100 if $breakpoint < 50; + my $ThisYear = (localtime())[5]; + my $NextCentury = int($ThisYear / 100) * 100; + my $Breakpoint = ($ThisYear + 50) % 100; + $NextCentury += 100 if $Breakpoint < 50; -my %options; +our(%Options, %Cheat); sub timegm { my (@date) = @_; @@ -26,11 +28,11 @@ sub timegm { $date[5] -= 1900; } elsif ($date[5] >= 0 && $date[5] < 100) { - $date[5] -= 100 if $date[5] > $breakpoint; - $date[5] += $nextCentury; + $date[5] -= 100 if $date[5] > $Breakpoint; + $date[5] += $NextCentury; } - $ym = pack(C2, @date[5,4]); - $cheat = $cheat{$ym} || &cheat(@date); + my $ym = pack('C2', @date[5,4]); + my $cheat = $Cheat{$ym} || &cheat($ym, @date); $cheat + $date[0] * $SEC + $date[1] * $MIN @@ -39,7 +41,7 @@ sub timegm { } sub timegm_nocheck { - local $options{no_range_check} = 1; + local $Options{no_range_check} = 1; &timegm; } @@ -71,59 +73,61 @@ sub timelocal { $tzsec += $HR if($lt[8]); - $time = $t + $tzsec; - @test = localtime($time + ($tt - $t)); + my $time = $t + $tzsec; + my @test = localtime($time + ($tt - $t)); $time -= $HR if $test[2] != $_[2]; $time; } sub timelocal_nocheck { - local $options{no_range_check} = 1; + local $Options{no_range_check} = 1; &timelocal; } sub cheat { - $year = $_[5]; - $month = $_[4]; - unless ($options{no_range_check}) { + my($ym, @date) = @_; + my($sec, $min, $hour, $day, $month, $year) = @date; + unless ($Options{no_range_check}) { croak "Month '$month' out of range 0..11" if $month > 11 || $month < 0; - croak "Day '$_[3]' out of range 1..31" if $_[3] > 31 || $_[3] < 1; - croak "Hour '$_[2]' out of range 0..23" if $_[2] > 23 || $_[2] < 0; - croak "Minute '$_[1]' out of range 0..59" if $_[1] > 59 || $_[1] < 0; - croak "Second '$_[0]' out of range 0..59" if $_[0] > 59 || $_[0] < 0; + croak "Day '$day' out of range 1..31" if $day > 31 || $day < 1; + croak "Hour '$hour' out of range 0..23" if $hour > 23 || $hour < 0; + croak "Minute '$min' out of range 0..59" if $min > 59 || $min < 0; + croak "Second '$sec' out of range 0..59" if $sec > 59 || $sec < 0; } - $guess = $^T; - @g = gmtime($guess); - $lastguess = ""; - $counter = 0; - while ($diff = $year - $g[5]) { - croak "Can't handle date (".join(", ",@_).")" if ++$counter > 255; + my $guess = $^T; + my @g = gmtime($guess); + my $lastguess = ""; + my $counter = 0; + while (my $diff = $year - $g[5]) { + my $thisguess; + croak "Can't handle date (".join(", ",@date).")" if ++$counter > 255; $guess += $diff * (363 * $DAY); @g = gmtime($guess); if (($thisguess = "@g") eq $lastguess){ - croak "Can't handle date (".join(", ",@_).")"; + croak "Can't handle date (".join(", ",@date).")"; #date beyond this machine's integer limit } $lastguess = $thisguess; } - while ($diff = $month - $g[4]) { - croak "Can't handle date (".join(", ",@_).")" if ++$counter > 255; + while (my $diff = $month - $g[4]) { + my $thisguess; + croak "Can't handle date (".join(", ",@date).")" if ++$counter > 255; $guess += $diff * (27 * $DAY); @g = gmtime($guess); if (($thisguess = "@g") eq $lastguess){ - croak "Can't handle date (".join(", ",@_).")"; + croak "Can't handle date (".join(", ",@date).")"; #date beyond this machine's integer limit } $lastguess = $thisguess; } - @gfake = gmtime($guess-1); #still being sceptic + my @gfake = gmtime($guess-1); #still being sceptic if ("@gfake" eq $lastguess){ - croak "Can't handle date (".join(", ",@_).")"; + croak "Can't handle date (".join(", ",@date).")"; #date beyond this machine's integer limit } $g[3]--; $guess -= $g[0] * $SEC + $g[1] * $MIN + $g[2] * $HR + $g[3] * $DAY; - $cheat{$ym} = $guess; + $Cheat{$ym} = $guess; } 1; diff --git a/lib/Time/tm.pm b/lib/Time/tm.pm index fd47ad19a9..2c308ebb41 100644 --- a/lib/Time/tm.pm +++ b/lib/Time/tm.pm @@ -1,6 +1,8 @@ package Time::tm; use strict; +our $VERSION = '1.00'; + use Class::Struct qw(struct); struct('Time::tm' => [ map { $_ => '$' } qw{ sec min hour mday mon year wday yday isdst } |