in reply to Re: Re: Re: Date::Calc to HTML::CalendarMonth
in thread Date::Calc to HTML::CalendarMonth

Once again, thanks for the input - it's been really
useful.

I shied away from epoch seconds as I am only
working with days and the Date::Calc functions seemed
to simplify this.

I had thought that it would be necessary to feed
the $days straight into HTML::CalendarMonth
but it seems that I need to reconvert and I can do that using:

$days = Date_to_Days($year,$month,$day); ($year,$month,$day) = Add_Delta_Days(1,1,1, $days - 1);
from the example page I get:
$c->item($c->month)->wrap_content(font({size => '+2'})); $c->item($c->dayheaders)->wrap_content(font({size => '-1'})); $c->item(15,16,17)->wrap_content(font({size => 4, color => 'red'})); $c->item(6,28)->wrap_content(new HTML::Element 'blink'); $c->item_daycol('Su','Sa')->attr(bgcolor => 'cyan'); print $c->as_HTML;
Although I haven't cracked the whole thing (I want to
generate the whole calendar using variables $year
$month $day) I have now managed to highlight
the days in the calendar by using the following:
#!/usr/bin/perl -w use CGI qw(:standard); use Date::Calc qw(:all); use HTML::AsSubs; use HTML::Element; use HTML::CalendarMonth; my $dates = "($year,$month,$day)"; print "Content-type: text/html\n\n"; my @dates = (731158, 731159, 731160, 731161, 731178); foreach $days (@dates) { $dates = Add_Delta_Days(1,1,1, $days - 1); push (@days, $dates); } $c = new HTML::CalendarMonth; month => 11, year => 2002, $c->item($c->month)->wrap_content(font({size => '+2'})); $c->item($c->dayheaders)->wrap_content(font({size => '-1'})); $c->item(@days)->wrap_content(font({size => 4, color => 'red'})); $c->item(6,28)->wrap_content(new HTML::Element 'blink'); $c->item_daycol('Su','Sa')->attr(bgcolor => 'cyan'); print $c->as_HTML;
Now I think all I have to do is connect in the variables $year $month and I shall be there. (but the midnight hour approacheth so I'll check it out manyana)

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Date::Calc to HTML::CalendarMonth
by Mr. Muskrat (Canon) on Nov 11, 2002 at 23:20 UTC

    Interesting usage of Date_to_Days and Add_Delta_Days!

    This works but feel free to do whatever you like with it...

    #!/usr/bin/perl use strict; use warnings; use CGI qw(:standard); use Date::Calc qw(:all); use HTML::AsSubs; use HTML::Element; use HTML::CalendarMonth; my @dates = (731158, 731159, 731160, 731161, 731178); my @days; foreach my $days (@dates) { my $dates = Add_Delta_Days(1,1,1, $days - 1); push (@days, $dates); } my $c = new HTML::CalendarMonth( month => 11, year => 2002, ); $c->item($c->month)->wrap_content(font({size => '+2'})); $c->item($c->dayheaders)->wrap_content(font({size => '-1'})); $c->item(@days)->wrap_content(font({size => 4, color => 'red'})); $c->item_daycol('Su','Sa')->attr(bgcolor => 'cyan'); print header(), start_html(-title => 'Test Calendar'), $c->as_HTML, en +d_html();