--- oryann9 <[EMAIL PROTECTED]> wrote: > All, > > I am having an issue getting my cgi calender to > print > correctly. Any help or hints would be appreciated! > I was thinking of manipulating the @weeks_anonymous > array with select dayofweek(curdate()) rather than > using hardcoed undef's > > Problem: cgi calender daynames are not matching up > with dates. For example: Todays date 02/27/2007 is > being printed under Thursday instead of Tuesday. > > Sun Mon Tues Wed Thurs Fri Sat > Feb 12, 07 Feb 13, 07 Feb 14, 07 Feb 15, 07 > Feb 16, 2007 Feb 17, 2007 Feb 18, 2007 Feb 19, 2007 > Feb 20, 2007 Feb 21, 2007 Feb 22, 2007 > Feb 23, 2007 Feb 24, 2007 Feb 25, 2007 Feb 26, 2007 > Feb 27, 2007 Feb 28, 2007 Mar 1, 2007 > Mar 2, 2007 Mar 3, 2007 Mar 4, 2007 Mar 5, 2007 Mar > 6, > 2007 Mar 7, 2007 Mar 8, 2007 > Mar 9, 2007 Mar 10, 2007 Mar 11, 2007 Mar 12, 2007 > Mar > 13, 2007 Mar 14, 2007 > > wherein today the 27th lines up with Thursday when > executing this code. I need it to correctly line up > with Tuesday. Finally, I am unable to use > HTML::Calander modules so this is not an option. >
I added some code to address this issue, a hash and an array to store dayofweek numbers, but still trying to figure out how to merge these two code additions to solve the dates with dayname problem. #!/usr/bin/perl use strict; use warnings; require "dbi-lib.pl"; use CGI qw/:standard *table start_ul/, (-unique_headers); use CGI::Carp qw(fatalsToBrowser); use DBI; my $cgi = new CGI; local $sth; #----------------------# # Function calls # #----------------------# print_header(); initialize_dbi(); #----------------# # Begin Main # #----------------# print $cgi->header(), $cgi->start_html ('Lesson 11'), $cgi->h1 ({-style=>'Color:blue'},'SQL Class'); print "<u>",$cgi->strong('Date/Time CGI Table:'),"</u><p>"; print $cgi->caption('MySQL calendar table output, Lesson 11:'); print "<p>"; run_statement( "select date_format(curdate(), '%b %e, %Y');" ); my $today = $sth->fetchrow; run_statement("select dayofweek(curdate() );" ); my $dayofweek = $sth->fetchrow; #run_statement( "select date_format(curdate()-2,'%W');" ); #my $twodayago = $sth->fetchrow; #print "$twodayago <p>"; my %WeekDays = ( Sunday => 1, Monday => 2, Tuesday => 3, Wednesday => 4, Thursday => 5, Friday => 6, Saturday => 7 ); my ($day, $day1, $week,) = (0,0,0); my (@weeks, @weeks1, @weeks_anonymous,) = ((),(),()); ## Set up array with dates minus 15 days and plus 15 days from current date ## foreach $day ('-15' .. '15') { run_statement( "select date_format(date_add(curdate(), interval '$day' day), '%b %e, %Y');" ); push (@weeks, $sth->fetchrow); } ## Match up dates with dayofweek #'s ## foreach $day1 ('-15' .. '15') { run_statement( "select dayofweek(date_add(curdate(), interval '$day1' day));" ); push (@weeks1, $sth->fetchrow); } ## Begin Table ## print table({border=>undef}); #print Tr ({-align=>'CENTER',-valign=>'TOP'}); @weeks_anonymous = ( [$weeks[0], $weeks[1], $weeks[2], $weeks[3], $weeks[4], $weeks[5], $weeks[6] ], [$weeks[7], $weeks[8], $weeks[9], $weeks[10], $weeks[11], $weeks[12], $weeks[13] ], [$weeks[14], $weeks[15], $weeks[16], $weeks[17], $weeks[18], $weeks[19], $weeks[20] ], [$weeks[21], $weeks[22], $weeks[23], $weeks[24], $weeks[25], $weeks[26], $weeks[27] ], [$weeks[28], $weeks[29], $weeks[30], $weeks[31], undef, undef, undef ], ); foreach $element (@weeks_anonymous) { print Tr({-align=>'CENTER',-valign=>'TOP'}); for $date (@{$element}) { if (! defined $date) { print td (''); } elsif ($date eq $today) { print td(strong($date) ); } else { print td ($date); } } print $cgi->end_Tr; } print $cgi->end_html; ____________________________________________________________________________________ Be a PS3 game guru. Get your game face on with the latest PS3 news and previews at Yahoo! Games. http://videogames.yahoo.com/platform?platform=120121 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/