--- ConnorCalendar/calendar.pl 2016/11/03 12:49:45 1.10 +++ ConnorCalendar/calendar.pl 2020/11/13 18:07:40 1.14 @@ -8,7 +8,7 @@ | | Nicholas DeClario | March 2009 -| $Id: calendar.pl,v 1.10 2016/11/03 12:49:45 nick Exp $ +| $Id: calendar.pl,v 1.14 2020/11/13 18:07:40 nick Exp $ | +------------------------------------------------------------------------------ =end comment @@ -26,14 +26,14 @@ use Calendar::Simple; use Date::Pcalendar::Year qw( :all ); use Date::Pcalendar::Profiles qw( $Profiles ); -my $VERSION = q/$Id: calendar.pl,v 1.10 2016/11/03 12:49:45 nick Exp $/; +my $VERSION = '$Id: calendar.pl,v 1.14 2020/11/13 18:07:40 nick Exp $'; my $DEBUG = ""; my $URL = "http://demandred.dyndns.org/cgi-bin/ConnorCalendar/index.cgi"; my %post_in = ( ); my %opts = &fetchOptions( ); my @list = ( ); my @months = qw/ January February March April May June July - August September October November December /; + August September October November December /; my %holidays = ( "Easter Sunday" => 'even', "Christmas Day" => 'even', @@ -45,24 +45,48 @@ my %holidays = ( "New Year's Day" => 'odd', "New Year's Eve" => 'odd', "Thanksgiving Day" => 'odd', - ); + ); my %specials = ( "11/28" => "even", "5/6" => "odd", ); + +my @school_days = ( + "2020/11/27", + "2020/12/24", + "2020/12/25", + "2020/12/28", + "2020/12/29", + "2020/12/30", + "2020/12/31", + "2021/01/01", + "2021/01/18", + "2021/02/15", + "2021/03/29", + "2021/03/30", + "2021/03/31", + "2021/04/01", + "2021/04/02", + "2021/04/05", + "2021/05/31", + "2021/06/01" + ); + +print "Content-type: text/html\n\n"; +print &header( ); + + ## Change this @weekend to 'qw/ 2011 8 12 /' for original schedule my @weekend = qw/ 2011 8 19 /; my %weekends = &calcWeekends( @weekend ); &ReadParse( ); -my $yr = sprintf( "%d", $post_in{'cy'} ) || ( ( localtime )[5] + 1900 ); +my $yr = sprintf( "%d", $post_in{'cy'} || ( localtime )[5] + 1900 ); my $YEAR = sprintf( "%d", $yr ); push @list, 'Easter Sunday' if ( $YEAR % 2 == 0 ); -print "Content-type: text/html\n\n"; -print &header( ); print &css( ); my $year_us = Date::Pcalendar::Year->new( $YEAR, $Profiles->{'US-FL'} ); my @hdays = $year_us->labels( ); @@ -99,6 +123,8 @@ for( my $month = 1; $month <= 12; $month print sprintf "%2d ", $day; } elsif ( &isToday( $YEAR, $month, $day ) ) { print sprintf "%2d ", $day; + } elsif ( &isSchoolClosed( $YEAR, $month, $day ) ) { + print sprintf "%2d ", $day; } else { print sprintf "%2d ", $day; } @@ -112,13 +138,14 @@ for( my $month = 1; $month <= 12; $month $row++; } print ""; -print "

Holidays I have Connor are in Red\n
"; +print "

Holidays Connor visits are in Red\n
"; print "Today is Blue\n
"; -print "Weekends and special days I have Connor are in Green\n

"; +print "Days off from school are Orange\n
Last Day of School 06/23/2021\n
\n"; +print "Weekends and special days Connor visits are in Green\n

"; print "
List of Special/Holidays " . - "I have Connor:

"; + "Connor Visits:

"; print map { $_ . "
\n" } sort @list; print "

\n"; print "

Version: $VERSION
"; @@ -144,9 +171,9 @@ sub IHaveConnor sub isSpecial { - my $y = shift || return 0; - my $m = shift || return 0; - my $d = shift || return 0; + my $y = shift || return 0; + my $m = shift || return 0; + my $d = shift || return 0; my $yr = ( $YEAR % 2 ) ? "odd" : "even"; my $ref = "$m/$d"; @@ -163,6 +190,21 @@ sub isSpecial return 0; } +sub isSchoolClosed +{ + my $y = shift || return 0; + my $m = shift || return 0; + my $d = shift || return 0; + + my $date_str = sprintf( "$y/%02d/%02d", $m, $d ); + + foreach my $sd ( @school_days ) { + return 1 if $date_str =~ m/$sd/; + } + + return 0; +} + sub isWeekend { my $y = shift || return 0; @@ -196,7 +238,7 @@ sub calcWeekends my $d = shift; my %weekends = ( ); - print "Weekends I have Connor:\n"; + print "Weekends Connor Visits:\n"; use Calendar; my $date = Calendar->new_from_Gregorian( $m, $d, $y );