>>>> weekday_pl.cgi as text file 27/May/2003 #!/usr/local/bin/perl # # Author name:tjkeefe # Creation date:15/Oct/2001 # # Description:Julian Date Calculator and weekday using PERL # print "Content-type:text/html\n\n"; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } $m = $FORM{'month'}; $d = $FORM{'day'}; $y = $FORM{'year'}; $JD = &julian($m,$d,$y); $A = (($JD + 1.5)/7); $FP = $A - int($A); $n = int($FP*7 + 0.5); @weekday = ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); sub julian() { ($month, $day, $year) = @_; if( $month < 3 ) { $yp = $year - 1; $mp = $month + 12; } else { $yp = $year; $mp = $month; } if(($year > 1582) ||(($year == 1582) &&(($month >= 10) && ($day >=15)))) { $A = int($yp/100); $B = 2 - $A + int($A/4); } else { $B = 0; } if( $yp < 0) { $C = int((365.25*$yp) - 0.75); } else { $C = int(365.25*$yp); } $D = int(30.6001*($mp+1)); $JD = $B + $C + $D + $day + 1720994.5; return $JD; } print "
"; print "
"; print "
"; print "
";
print "For $m/$d/$y:";
print "
";
print("Weekday is $weekday[$n]");
print("
");
print( "Julian Date is $JD");
print "";