The date you provided is out of range.";
print " ";
$Table{int($dateday)} .= "$desc";
$SmallTable{int($dateday)} .= " $desc";
$SmallTable{int($dateday)} .= "   New Moon";
}
if (int((int((($perp_days-12.75202)/29.53031)+.5)*29.53031)+12.75202) == $perp_days) {
$Table{$key} .= " First Quarter Moon";
}
if (int((int((($perp_days-20.13460)/29.53031)+.5)*29.53031)+20.13460) == $perp_days) {
$Table{$key} .= " Full Moon";
}
if (int((int((($perp_days-27.51718)/29.53031)+.5)*29.53031)+27.51718) == $perp_days) {
$Table{$key} .= " Last Quarter Moon";
}
}
$perp_days++;
print " $key";
}
else {
print "";
print " $key";
}
if ($DisplayCounter) {
print " "; }
print "   $key";
}
else {
print "";
print " $key";
}
print "
It must be between 1601 and 2899 A.D.\n";
&Footer;
exit;
}
foreach $datafile (@datafiles) {
open (DATA,$datafile);
while ($line=) {
push (@unsorteddata,$line);
}
close (DATA);
}
@data = sort {$a <=> $b} (@unsorteddata);
foreach $line (@data) {
if ($line =~ /\n$/) { chop ($line); }
($date,$desc,$URL) = split (/\|/, $line);
($dateyear,$datemonth,$dateday) =
$date =~ m#(\d\d\d\d)(\d\d)(\d\d)#o;
if ((int($dateyear) == int($INPUT{'Year'}))
|| (int($dateyear) < 1)) {
if (int($datemonth) == int($INPUT{'Month'})) {
$textdesc = $desc;
$textdesc =~ s/<([^>]|\n)*>//g;
if ($URL) {
$Table{int($dateday)} .= "
";
$SmallTable{int($dateday)} .= "$desc";
$Text{int($dateday)} .= " ";
$Text{int($dateday)} .= "";
$Text{int($dateday)} .= "$textdesc\n";
}
else {
$Table{int($dateday)} .= "
$desc";
$Text{int($dateday)} .= " ";
$Text{int($dateday)} .= "$textdesc\n";
}
}
}
$SmallTable{int($dateday)} =~ s/^
//;
$Text{int($dateday)} =~ s/^ //;
}
&PerpetualCalendar(int($INPUT{'Month'}),1,int($INPUT{'Year'}));
$xmonth = @months[int($INPUT{'Month'})-1];
$heading = "$xmonth $INPUT{'Year'}";
&Header("$heading");
if ($CalendarTitle) {
print "$CalendarTitle
\n";
}
if ($INPUT{'Type'} eq "Text") {
print "$heading
\n";
print "\n";
foreach $key (1..$perp_eom) {
$weekday = ($key+$perp_dow)-(int(($key+$perp_dow)/7)*7);
if ($weekday < 1) { $weekday = 7; }
if ($DisplayPhases) {
if (int((int((($perp_days-5.36945)/29.53031)+.5)*29.53031)+5.36945) == $perp_days) {
if ($Text{$key}) { $Text{$key} .= " "; }
$Text{$key} .= "New Moon\n";
}
if (int((int((($perp_days-12.75202)/29.53031)+.5)*29.53031)+12.75202) == $perp_days) {
if ($Text{$key}) { $Text{$key} .= " "; }
$Text{$key} .= "First Quarter Moon\n";
}
if (int((int((($perp_days-20.13460)/29.53031)+.5)*29.53031)+20.13460) == $perp_days) {
if ($Text{$key}) { $Text{$key} .= " "; }
$Text{$key} .= "Full Moon\n";
}
if (int((int((($perp_days-27.51718)/29.53031)+.5)*29.53031)+27.51718) == $perp_days) {
if ($Text{$key}) { $Text{$key} .= " "; }
$Text{$key} .= "Last Quarter Moon\n";
}
}
$perp_days++;
if ($Text{$key}) {
if ($key < 10) { print "0"; }
print "$key ";
$xshortmonth = @shortmonths[$INPUT{'Month'}-1];
print "$xshortmonth ";
print "$INPUT{'Year'} ";
$xshortday = @shortdays[$weekday-1];
print "($xshortday) ";
print "$Text{$key}";
}
if (($weekday == 7) && !($key == $perp_eom)) {
print "\n ---------------\n\n";
}
}
print "\n";
}
elsif ($INPUT{'Type'} eq "Table") {
print "\n";
print " ";
print "";
print " \n";
print "$heading
\n";
foreach $key (1..7) {
print " ";
print "";
$xday = @days[$key-1];
print "$xday ";
}
print "\n\n";
if ($perp_dow > 0) {
print " ";
print " ";
}
foreach $key (1..$perp_eom) {
if ($DisplayPhases) {
if (int((int((($perp_days-5.36945)/29.53031)+.5)*29.53031)+5.36945) == $perp_days) {
$Table{$key} .= ""; }
else { print "$bgcolor_normal\">"; }
if (($INPUT{'Year'} == $year)
&& ($INPUT{'Month'} == $month)
&& ($key == $mday)) {
print "";
print " ";
$weekday = ($key+$perp_dow)-(int(($key+$perp_dow)/7)*7);
if (($weekday == 0) && !($key == $perp_eom)) {
print "\n
($perp_sofar/$perp_togo)";
}
$perp_sofar++;
$perp_togo -= 1;
print "\n";
}
}
if ($weekday > 0) {
$leftover = 7-$weekday;
print " ";
print " ";
}
print "";
print " \n";
print " \n";
foreach $key (1..$perp_eom) {
if ($DisplayPhases) {
if (int((int((($perp_days-5.36945)/29.53031)+.5)*29.53031)+5.36945) == $perp_days) {
if ($SmallTable{$key}) { $SmallTable{$key} .= "
"; }
$SmallTable{$key} .= "New Moon\n";
}
if (int((int((($perp_days-12.75202)/29.53031)+.5)*29.53031)+12.75202) == $perp_days) {
if ($SmallTable{$key}) { $SmallTable{$key} .= "
"; }
$SmallTable{$key} .= "First Quarter Moon\n";
}
if (int((int((($perp_days-20.13460)/29.53031)+.5)*29.53031)+20.13460) == $perp_days) {
if ($SmallTable{$key}) { $SmallTable{$key} .= "
"; }
$SmallTable{$key} .= "Full Moon\n";
}
if (int((int((($perp_days-27.51718)/29.53031)+.5)*29.53031)+27.51718) == $perp_days) {
if ($SmallTable{$key}) { $SmallTable{$key} .= "
"; }
$SmallTable{$key} .= "Last Quarter Moon\n";
}
}
$perp_days++;
next unless ($SmallTable{$key});
print "";
print "";
$xshortmonth = @shortmonths[$INPUT{'Month'}-1];
print "$key $xshortmonth ";
print "$INPUT{'Year'} ";
$weekday =
($key+$perp_dow)-(int(($key+$perp_dow)/7)*7);
if ($weekday < 1) { $weekday = 7; }
$xshortday = @shortdays[$weekday-1];
print "($xshortday):";
print " ";
print "";
print " ";
}
print "";
print "";
print "$SmallTable{$key} ";
print "\n";
}
print " \n";
print " ";
print "";
print "$heading \n";
print "\n";
foreach $key (1..7) {
print " ";
print "";
$xshortday = @shortdays[$key-1];
print "$xshortday ";
}
print "\n\n";
if ($perp_dow > 0) {
print " ";
print " ";
}
foreach $key (1..$perp_eom) {
print ""; }
else { print "$bgcolor_normal\">"; }
if (($INPUT{'Year'} == $year)
&& ($INPUT{'Month'} == $month)
&& ($key == $mday)) {
print "";
print " ";
$weekday = ($key+$perp_dow)-(int(($key+$perp_dow)/7)*7);
if (($weekday == 0) && !($key == $perp_eom)) {
print "\n\n";
}
}
if ($weekday > 0) {
$leftover = 7-$weekday;
print " ";
print " ";
}
print "\n";
$LastYear = int($INPUT{'Year'});
$LastMonth = int($INPUT{'Month'})-1;
if ($LastMonth == 0) {
$LastMonth = 12;
$LastYear -= 1;
}
print " \n";
$NextYear = int($INPUT{'Year'});
$NextMonth = int($INPUT{'Month'})+1;
if ($NextMonth == 13) {
$NextMonth = 1;
$NextYear += 1;
}
print " \n";
print "