1 package HTML::CalendarMonth::DateTool::DateManip;
3 $HTML::CalendarMonth::DateTool::DateManip::VERSION = '1.25';
6 # Interface to Date::Manip
12 use base qw( HTML::CalendarMonth::DateTool );
23 sub dow1st_and_lastday {
24 my($self, $month, $year) = @_;
25 $month ||= $self->month;
26 $year ||= $self->year;
27 ($self->dow(1), Date_DaysInMonth($month, $year));
31 my($self, $day, $month, $year) = @_;
32 $day || croak "day required.\n";
33 $month ||= $self->month;
34 $year ||= $self->year;
35 Date_SecsSince1970($month, $day, $year, 0, 0, 0);
39 # Date::Manip uses 1..7 as indicies in the week, starting with Monday.
40 # Convert to 0..6 starting with Sunday.
41 my($self, $day, $month, $year) = @_;
42 $day || croak "day required.\n";
43 $month ||= $self->month;
44 $year ||= $self->year;
45 Date_DayOfWeek($month, $day, $year) % 7;
49 my($self, $delta, $day, $month, $year) = @_;
50 defined $delta || croak "delta (in days) required.\n";
51 $day || croak "day required.\n";
52 $month ||= $self->month;
53 $year ||= $self->year;
55 sprintf("%04d%02d%02d", $year, $month, $day),
58 my($y, $m, $d) = $date =~ /^(\d{4})(\d\d)(\d\d)/;
59 $_ += 0 foreach ($y, $m, $d);
64 my($self, $day, $month, $year) = @_;
65 $day || croak "day required.\n";
66 $month ||= $self->month;
67 $year ||= $self->year;
68 my $week = UnixDate(sprintf("%04d%02d%02d", $year, $month, $day), '%U');