/
usr
/
share
/
perl5
/
DateTime
/
TimeZone
/
OlsonDB
/
/usr/share/perl5/DateTime/TimeZone/OlsonDB
mkdir
upload
Name
Size
Mode
Actions
Change.pm
3451
0644
edit
dl
rm
Observance.pm
13094
0644
edit
dl
rm
Rule.pm
1907
0644
edit
dl
rm
Zone.pm
5359
0644
edit
dl
rm
Edit:
/usr/share/perl5/DateTime/TimeZone/OlsonDB/Rule.pm
(1907B)
package DateTime::TimeZone::OlsonDB::Rule; use strict; use warnings; use namespace::autoclean; our $VERSION = '2.51'; use DateTime::TimeZone::OlsonDB; sub new { my $class = shift; my %p = @_; $p{letter} ||= q{}; my $save = $p{save}; # The handling of q{-} and q{1} are to account for new syntax introduced # in 2009u (and hopefully gone in future versions). if ( $save && $save ne q{-} ) { if ( $save =~ /^\d+$/ ) { $p{offset_from_std} = 3600 * $save; } else { $p{offset_from_std} = DateTime::TimeZone::offset_as_seconds($save); } } else { $p{offset_from_std} = 0; } return bless \%p, $class; } sub name { $_[0]->{name} } sub offset_from_std { $_[0]->{offset_from_std} } sub letter { $_[0]->{letter} } sub min_year { $_[0]->{from} } sub max_year { $_[0]->{to} eq 'only' ? $_[0]->min_year : $_[0]->{to} eq 'max' ? undef : $_[0]->{to}; } sub is_infinite { $_[0]->{to} eq 'max' ? 1 : 0 } sub month { $DateTime::TimeZone::OlsonDB::MONTHS{ $_[0]->{in} } } sub on { $_[0]->{on} } sub at { $_[0]->{at} } sub utc_start_datetime_for_year { my $self = shift; my $year = shift; my $offset_from_utc = shift; # should be the offset of the _previous_ rule my $offset_from_std = shift; my ( $month, $day ) = DateTime::TimeZone::OlsonDB::parse_day_spec( $self->on, $self->month, $year, ); my $utc = DateTime::TimeZone::OlsonDB::utc_datetime_for_time_spec( spec => $self->at, year => $year, month => $month, day => $day, offset_from_utc => $offset_from_utc, offset_from_std => $offset_from_std, ); return $utc; } 1;
Save
cmd:
run