1 package HTML::CalendarMonth::DateTool::DateTime;
3 $HTML::CalendarMonth::DateTool::DateTime::VERSION = '1.26';
6 # Interface to DateTime
12 use base qw( HTML::CalendarMonth::DateTool );
16 sub dow1st_and_lastday {
17 my($self, $month, $year) = @_;
18 $month ||= $self->month;
19 $year ||= $self->year;
20 my $lastday = $self->_last_dom_dt($year, $month);
21 my $dow1st = $self->dow(1);
22 ($dow1st, $lastday->day);
26 my($self, $day, $month, $year) = @_;
27 $day || croak "day required.\n";
28 $month ||= $self->month;
29 $year ||= $self->year;
30 my $dt = $self->_new_dt($year, $month, $day);
35 my($self, $day, $month, $year) = @_;
36 $day || croak "day required.\n";
37 $month ||= $self->month;
38 $year ||= $self->year;
39 my $dt = $self->_new_dt($year, $month, $day);
40 # convert from 1..7, starting with Mon, to 0..6, starting with Sun
45 my($self, $delta, $day, $month, $year) = @_;
46 defined $delta || croak "delta (in days) required.\n";
47 $day || croak "day required.\n";
48 $month ||= $self->month;
49 $year ||= $self->year;
50 my $dt = $self->_new_dt($year, $month, $day);
51 $dt->add(days => $delta);
52 ($dt->day, $dt->month, $dt->year);
56 my($self, $day, $month, $year) = @_;
57 $day || croak "day required.\n";
58 $month ||= $self->month;
59 $year ||= $self->year;
60 my $dt = $self->_new_dt($year, $month, $day);
61 # returns ($year, $week)
67 my($year, $month, $day) = @_;
68 $year or croak "year and month required\n";
69 my %parms = (year => $year);
70 $parms{month} = $month if $month;
71 $parms{day} = $day if $day;
75 DateTime->new(%parms);
80 my($year, $month) = @_;
81 $year && $month or croak "year and month required.\n";
82 DateTime->last_day_of_month(year => $year, month => $month);