#!/usr/bin/perl ############################################################################## # Countdown Version 1.21 # # Copyright 1996 Matt Wright mattw@worldwidemart.com # # Created 9/1/95 Last Modified 10/8/95 # # Scripts Archive at: http://www.worldwidemart.com/scripts/ # ############################################################################## # COPYRIGHT NOTICE # # Copyright 1996 Matthew M. Wright All Rights Reserved. # # # # Countdown may be used and modified free of charge by anyone so long as # # this copyright notice and the comments above remain intact. By using this # # code you agree to indemnify Matthew M. Wright from any liability that # # might arise from it's use. # # # # Selling the code for this program without prior written consent is # # expressly forbidden. In other words, please ask first before you try and # # make money off of my program. # # # # Obtain permission before redistributing this software over the Internet or # # in any other medium. In all cases copyright and header must remain intact.# ############################################################################## # Define Variables # @from_date = (yyyy,mm,dd,hh,mm,ss); # Which means: (year,month,day,hour,minute,second) @from_date = (2000,1,1,0,0,0); # Done ############################################################################## $ENV{'QUERY_STRING'} =~ s/%2C/,/g; $ENV{'QUERY_STRING'} =~ s/=//g; if ($ENV{'QUERY_STRING'}) { @from_date = split(/,/, $ENV{'QUERY_STRING'}); } # Define when various things occur, different dates, etc... &define_dates; # Calculate the Differences in the two dates &calc_dates; # Make Sure we don't get negative times.. That's not cool... &no_negative; # Top of HTML Page Information &html_header; # We don't want it to say 1 Years, now, do we? Of course not! &proper_english; # End of HTML Page Information &html_trailer; ##################################### # Subroutines sub define_dates { ($f_year,$f_month,$f_day,$f_hour,$f_minute,$f_second) = @from_date; ($second,$minute,$hour,$day,$month,$year,$wday,$yday,$isdst) = localtime(time); $year ="19$year"; &leap_year_check; @months = ("XX","January","February","March","April","May","June","July", "August","September","October","November","December"); @days = ("XX","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th", "11th","12th","13th","14th","15th","16th","17th","18th","19th", "20th","21st","22nd","23rd","24th","25th","26th","27th","28th", "29th","30th","31st"); @days_in_month = (31,$feb_days,31,30,31,30,31,31,30,31,30,31); $date_term = "$months[$f_month] $days[$f_day]"; unless ($f_year eq 'XX') { $date_term = "$date_term, $f_year"; } unless ($f_hour eq 'XX') { $date_term = "$date_term $f_hour"; } unless ($f_minute eq 'XX') { if ($f_minute < 10) { $date_term = "$date_term:0$f_minute"; } else { $date_term = "$date_term:$f_minute"; } } unless ($f_second eq 'XX') { if ($f_second < 10) { $date_term = "$date_term:0$f_second"; } else { $date_term = "$date_term:$f_second"; } } $current_date = "$months[($month + 1)] $days[$day], $year $hour"; if ($minute < 10) { $current_date = "$current_date:0$minute"; } else { $current_date = "$current_date:$minute"; } if ($second < 10) { $current_date = "$current_date:0$second"; } else { $current_date = "$current_date:$second"; } } sub leap_year_check { $yeardiv = ($year / 4); $yearint = int($yeardiv); $yeardiv1 = ($year / 100); $yearint1 = int($yeardiv1); if ($yeardiv eq $yearint && $yeardiv1 ne $yearint1) { $feb_days = "28"; } else { $feb_days = "29"; } } sub calc_dates { $real_year = ($f_year - $year); $real_month = (($f_month - 1) - $month); $real_day = ($f_day - $day); $real_hour = ($f_hour - $hour); $real_minute = ($f_minute - $minute); $real_second = ($f_second - $second); } sub no_negative { if ($real_second < 0) { $real_second = ($real_second + 60); $real_minute--; } if ($real_minute < 0) { $real_minute = ($real_minute + 60); $real_hour--; } if ($real_hour < 0) { $real_hour = ($real_hour + 24); $real_day--; } if ($real_day < 0) { $real_day = ($real_day + @days_in_month[$month]); $real_month--; } if ($real_month < 0) { $real_month = ($real_month + 12); $real_year--; } } sub proper_english { unless ($f_year eq 'XX') { if ($real_year eq '1') { print "$real_year Year
\n"; } else { print "$real_year Years
\n"; } } unless ($f_month eq 'XX') { if ($real_month eq '1') { print "$real_month Month
\n"; } else { print "$real_month Months
\n"; } } unless ($f_day eq 'XX') { if ($real_day eq '1') { print "$real_day Day
\n"; } else { print "$real_day Days
\n"; } } unless ($f_hour eq 'XX') { if ($real_hour eq '1') { print "$real_hour Hour
\n"; } else { print "$real_hour Hours
\n"; } } unless ($f_minute eq 'XX') { if ($real_minute eq '1') { print "$real_minute Minute
\n"; } else { print "$real_minute Minutes
\n"; } } unless ($f_second eq 'XX') { if ($real_second eq '1') { print "$real_second Second
\n"; } else { print "$real_second Seconds
\n"; } } } sub html_header { print "Content-type: text/html\n\n"; print "Countdown to: $date_term\n"; print "

Countdown to: $date_term

\n"; print "
\n"; } sub html_trailer { print "
\n"; print "It is currently $current_date\n"; print "
\n"; print "\n"; }