--- 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/


Reply via email to