X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lib%2FHTML%2FCalendarMonth%2FDateTool%2FTimeLocal.pm;fp=lib%2FHTML%2FCalendarMonth%2FDateTool%2FTimeLocal.pm;h=d107edb420b00cfce141b3613058eb4730e716b9;hb=ed44be48bb467d82127717d1ae2d11890aaf329b;hp=0000000000000000000000000000000000000000;hpb=982e2bb08f00d800e2cd9fb65b108231719c8a65;p=deb_pkgs%2Flibhtml-calendarmonth-perl.git diff --git a/lib/HTML/CalendarMonth/DateTool/TimeLocal.pm b/lib/HTML/CalendarMonth/DateTool/TimeLocal.pm new file mode 100644 index 0000000..d107edb --- /dev/null +++ b/lib/HTML/CalendarMonth/DateTool/TimeLocal.pm @@ -0,0 +1,39 @@ +package HTML::CalendarMonth::DateTool::TimeLocal; +{ + $HTML::CalendarMonth::DateTool::TimeLocal::VERSION = '1.26'; +} + +# Interface to Time::Local + +use strict; +use warnings; +use Carp; + +use base qw( HTML::CalendarMonth::DateTool ); + +use Time::Local; + +sub dow1st_and_lastday { + my($self, $month, $year) = @_; + $month ||= $self->month; + $year ||= $self->year; + # map month to 0-12 + --$month; + # years since 1900...hooh-rah for POSIX... + $year -= 1900; + my $nmonth = $month + 1; + my $nyear = $year; + if ($nmonth > 11) { + # Happy new year + $nmonth = 0; + ++$nyear; + } + # Leave dow of 1st in 0-based format + my $dow1st = (gmtime(Time::Local::timegm(0,0,0,1,$month,$year)))[6]; + # Last day is one day prior to 1st of month after + my $lastday = (gmtime(Time::Local::timegm(0,0,0,1,$nmonth,$nyear) + - 60*60*24))[3]; + ($dow1st, $lastday); +} + +1;