]> git.donarmstrong.com Git - deb_pkgs/libhtml-calendarmonth-perl.git/blobdiff - 1.18/lib/HTML/CalendarMonth/DateTool/TimeLocal.pm
[svn-upgrade] Tagging new upstream version, libhtml-calendarmonth-perl (1.18)
[deb_pkgs/libhtml-calendarmonth-perl.git] / 1.18 / lib / HTML / CalendarMonth / DateTool / TimeLocal.pm
diff --git a/1.18/lib/HTML/CalendarMonth/DateTool/TimeLocal.pm b/1.18/lib/HTML/CalendarMonth/DateTool/TimeLocal.pm
new file mode 100644 (file)
index 0000000..05b084e
--- /dev/null
@@ -0,0 +1,39 @@
+package HTML::CalendarMonth::DateTool::TimeLocal;
+
+# Interface to Time::Local
+
+use strict;
+use Carp;
+
+use vars qw(@ISA $VERSION);
+
+@ISA = qw(HTML::CalendarMonth::DateTool);
+
+$VERSION = '0.01';
+
+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;