--- ConnorCalendar/calendar.pl 2013/05/28 22:59:33 1.4 +++ ConnorCalendar/calendar.pl 2016/11/03 12:54:10 1.11 @@ -1,4 +1,4 @@ -#!/usr/bin/perl -wT +#!/usr/bin/perl -w =begin comment info +------------------------------------------------------------------------------ @@ -8,7 +8,7 @@ | | Nicholas DeClario | March 2009 -| $Id: calendar.pl,v 1.4 2013/05/28 22:59:33 nick Exp $ +| $Id: calendar.pl,v 1.11 2016/11/03 12:54:10 nick Exp $ | +------------------------------------------------------------------------------ =end comment @@ -23,25 +23,26 @@ use Getopt::Long; use Pod::Usage; use Data::Dumper; use Calendar::Simple; -use Date::Calendar::Year qw( :all ); -use Date::Calendar::Profiles qw( $Profiles ); +use Date::Pcalendar::Year qw( :all ); +use Date::Pcalendar::Profiles qw( $Profiles ); -my $VERSION = q/$Id: calendar.pl,v 1.4 2013/05/28 22:59:33 nick Exp $/; +my $VERSION = '$Id: calendar.pl,v 1.11 2016/11/03 12:54:10 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 Novemeber December /; + August September October November December /; my %holidays = ( + "Easter Sunday" => 'even', "Christmas Day" => 'even', "Christmas Eve" => 'odd', "Father's Day" => 'all', "Independence Day" => 'even', "Labor Day" => 'even', "Memorial Day" => 'odd', - "New Year's Day" => 'even', + "New Year's Day" => 'odd', "New Year's Eve" => 'odd', "Thanksgiving Day" => 'odd', ); @@ -50,34 +51,28 @@ my %specials = ( "11/28" => "even", "5/6" => "odd", ); -my @weekend = qw/ 2011 8 12 /; +## 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 $YEAR = sprintf( "%d", $yr ); +push @list, 'Easter Sunday' if ( $YEAR % 2 == 0 ); print "Content-type: text/html\n\n"; -print ""; -print "Calendar Days I Have Connor"; -print "

Calendar for $YEAR

\n"; -print "

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

"; - -my $year_us = Date::Calendar::Year->new( $YEAR, $Profiles->{'US-FL'} ); +print &header( ); +print &css( ); +my $year_us = Date::Pcalendar::Year->new( $YEAR, $Profiles->{'US-FL'} ); my @hdays = $year_us->labels( ); -#$DEBUG = "Holidays for $YEAR:\n"; -#foreach ( sort @hdays ) { $DEBUG .= $_ ."\n"; } - - -print "
<-- $YEAR " . - "-->
"; +print "

<-- " . + "Calendar Days Connor Visits for $YEAR" . + " -->

"; my $row = 0; -print ""; +print "
"; for( my $month = 1; $month <= 12; $month++ ) { if ( $row >= 3 ) @@ -117,11 +112,18 @@ for( my $month = 1; $month <= 12; $month $row++; } print "
"; -print "
List of Special/Holidays I have Connor:
";
-print map { $_ . "\n" } sort @list;
-print "


Version: $VERSION
"; -print "CVS: http://demandred.dyndns.org/cgi-bin/cvsweb/ConnorCalendar/"; -print "
\n\n$DEBUG
"; +print "

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

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

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

\n"; +print "

Version: $VERSION
"; +print "CVS: http://demandred.dyndns.org/cgi-bin/cvsweb/ConnorCalendar/"; +print "

"; ############################################################################### @@ -164,8 +166,8 @@ sub isSpecial sub isWeekend { my $y = shift || return 0; - my $m = shift || return 0; - my $d = shift || return 0; + my $m = shift || return 0; + my $d = shift || return 0; $m--; my $ds = sprintf( "$y/$months[$m]/%02d", $d ); @@ -275,6 +277,253 @@ sub fetchOptions { return %opts; } +sub header { + return < + + + + + Calendar Days Connor Visits + + +EOF +} + +sub css { + return < +body { + +padding-top: 0px; +padding-left: 0px; +padding-right: 0px; +padding-bottom: 0px; + + text-align:left; + margin:0; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + #font-family: Geneva, Arial, Helvetica, sans-serif; + font-size: 12pt; + background: #eeeeee; + color:#000000; + + +} + +.name { + color: #191970; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + #font-family: Verdana, Arial, sans-serif; + font-size: 18pt; font-weight: bold; line-height: 38pt; + text-align: center; +} + +p.Legend { + color: #000000; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + font-size: 8pt; + margin: auto; + width: 300px; + background-color : transparent; + border-top: 1px solid #888888; + border-left: 1px solid #888888; + border-right: 1px solid #888888; + border-bottom: 1px solid #888888; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 3px; + padding-right: 3px; +} + +h1 { + color: #191970; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + #font-family: Verdana, Arial, sans-serif; + font-size: 12pt; font-weight: bold; line-height: 15pt; + background-color : transparent; + margin-left: 20px; + margin-right: 20px; + border-top: 1px solid black; + border-bottom: 1px solid black; +} + + +h2 { + color: #191970; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + font-weight: bold; + font-size: 18px; +} + +h3 { + color: #191970; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + font-weight: bold; + font-size: 14px; +} + + +textarea { width:100%; } + +.gallery { +padding-top: 80px; +padding-left: 60px; +padding-right: 50px; +line-height: 120%; +background:url('topleft.jpg') no-repeat top left; +} +.browse { +padding-top: 80px; +padding-left: 60px; +padding-right: 50px; +line-height: 120%; +background:url(topleft.jpg) no-repeat top left; +} +.content, .rc { +padding-top: 100px; +padding-left: 80px; +padding-right: 50px; +line-height: 120%; +} + + +p.footer { + color: #000000; + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; + font-size: 8pt; + margin: auto; + width: 500px; + background-color : transparent; + border-top: 1px solid #888888; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 3px; + padding-right: 3px; + text-align: center; +} + + +.header { +float: right; +margin-top: 30px; +margin-right: 50px; +padding: 10px; +padding-top: 10px,10px,10px,10px; + +} +pre { + border: #777777 1px dashed; + padding: 0.5em; + margin-left: 1em; + margin-right: 2em; + white-space: pre; + background-color: #fbfdff; + color: black; + font-size:12px; +} + +.refer { + padding-left: 60px; + padding-right: 50px; + margin-right: 50px; + margin-left: 50px; + font-size:80%; +} + +.gotobar { + color: #191970; + font-size:10px; +} + +.edit bar { + color: #949ce5; +} + +.contactInfo { + font-size:12px; + text-align:center; +} + +.workHeader { + text-align:left; + font-size:13px; + text-decoration:none; + font-weight:normal; +} + +.workHeaderDate { + float: right; +} + +.workHeaderStrong { + font-size:15px; + text-decoration:none; + font-weight:bolder; +} + +.jobDescription { + padding-top:15px; + font-size:13px; +} + +.bulletContent { + font-size:13px; +} + +.leftCol { + width:10.2em; + position:absolute; + top:0; + font-size:13px; + padding-left:1%; + padding-right:1%; +} + +.rightCol { + width:10.2em; + position:absolute; + top:0; + font-size:13px; + padding-left:1%; + padding-right:1%; +} + +a:link {color:#082e58; text-decoration: none; font-weight:bolder;} +a:visited {color:#7795b7; font-weight:normal; text-decoration:none;} +a:hover {color:#949ce5;} + + +a.definition:before { content:"[::"; } +a.definition:after { content:"]"; } +a.alias { text-decoration:none; border-bottom: thin dashed; } +a.near:link { color:#093; } +a.near:visited { color:#550; } +a.upload:before { content:"<"; } +a.upload:after { content:">"; } +a.outside:before { content:"["; } +a.outside:after { content:"]"; } +img.logo { float: right; clear: right; border-style:none; } +div.diff { padding-left:5%; padding-right:5%; } +div.old { background-color:#FFFFAF; } +div.new { background-color:#CFFFCF; } +div.message { background-color:#FEE; } +div.journal h1 { font-size:large; } +table.history { border-style:none; } +td.history { border-style:none; } +span.result { font-size:larger; } +span.info { font-size:smaller; font-style:italic; } +div.rss { background-color:#EEF; } +div.sister { float:left; margin-right:1ex; background-color:#FFF; } +div.sister p { margin-top:0; } +div.sister img { border:none; } +div.near { background-color:#EFE; } +div.near p { margin-top:0; } + +EOF + +} + __END__ =head1 NAME