X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=current%2Flib%2FHTML%2FCalendarMonth%2FDateTool%2FDateManip.pm;h=2531d1d97595e6f3466eea5ceded29369e51f94a;hb=6116bc7efd7446d3ff910328a74c8e8aa9093c47;hp=0dadef070fe2f6ad850ff29c214cde6a532c00ab;hpb=7444dbb3f0999e61ca02028e688a97577040eafb;p=deb_pkgs%2Flibhtml-calendarmonth-perl.git diff --git a/current/lib/HTML/CalendarMonth/DateTool/DateManip.pm b/current/lib/HTML/CalendarMonth/DateTool/DateManip.pm index 0dadef0..2531d1d 100644 --- a/current/lib/HTML/CalendarMonth/DateTool/DateManip.pm +++ b/current/lib/HTML/CalendarMonth/DateTool/DateManip.pm @@ -1,32 +1,35 @@ package HTML::CalendarMonth::DateTool::DateManip; +{ + $HTML::CalendarMonth::DateTool::DateManip::VERSION = '1.26'; +} # Interface to Date::Manip use strict; +use warnings; use Carp; -use vars qw(@ISA $VERSION); - -@ISA = qw(HTML::CalendarMonth::DateTool); - -$VERSION = '0.01'; +use base qw( HTML::CalendarMonth::DateTool ); -use Date::Manip qw(Date_DaysInMonth Date_DayOfWeek DateCalc - UnixDate Date_SecsSince1970); +use Date::Manip qw( + Date_DaysInMonth + Date_DayOfWeek + DateCalc + UnixDate + Date_SecsSince1970 + ParseDateDelta +); sub dow1st_and_lastday { my($self, $month, $year) = @_; $month ||= $self->month; $year ||= $self->year; - my $lastday = Date_DaysInMonth($month, $year); - # Date::Manip uses 1 for Monday, 7 for Sunday as well. - my $dow1st = $self->dow(1); - ($dow1st, $lastday); + ($self->dow(1), Date_DaysInMonth($month, $year)); } sub day_epoch { my($self, $day, $month, $year) = @_; - $day || croak "Day required.\n"; + $day || croak "day required.\n"; $month ||= $self->month; $year ||= $self->year; Date_SecsSince1970($month, $day, $year, 0, 0, 0); @@ -34,25 +37,24 @@ sub day_epoch { sub dow { # Date::Manip uses 1..7 as indicies in the week, starting with Monday. - # Internally, we use 0..6, starting with Sunday. These turn out to be - # identical except for Sunday. + # Convert to 0..6 starting with Sunday. my($self, $day, $month, $year) = @_; - $day || croak "Day required.\n"; + $day || croak "day required.\n"; $month ||= $self->month; $year ||= $self->year; - my $dow = Date_DayOfWeek($month, $day, $year); - $dow = 0 if $dow == 7; - $dow; + Date_DayOfWeek($month, $day, $year) % 7; } sub add_days { my($self, $delta, $day, $month, $year) = @_; - $delta || croak "Delta (in days) required.\n"; - $day || croak "Day required.\n"; + defined $delta || croak "delta (in days) required.\n"; + $day || croak "day required.\n"; $month ||= $self->month; $year ||= $self->year; - my $date = DateCalc(sprintf("%04d%02d%02d", $year, $month, $day), - "+ $delta days"); + my $date = DateCalc( + sprintf("%04d%02d%02d", $year, $month, $day), + "$delta days" + ); my($y, $m, $d) = $date =~ /^(\d{4})(\d\d)(\d\d)/; $_ += 0 foreach ($y, $m, $d); ($d, $m, $y); @@ -60,7 +62,7 @@ sub add_days { sub week_of_year { my($self, $day, $month, $year) = @_; - $day || croak "Day required.\n"; + $day || croak "day required.\n"; $month ||= $self->month; $year ||= $self->year; my $week = UnixDate(sprintf("%04d%02d%02d", $year, $month, $day), '%U');