#!/usr/local/bin/perl
@m =
("Foo","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",
"B/W");
print "Content-type: text/html\n\n";
print "
Biweekly Mortgage Calculation\n";
print "Biweekly Mortgage Calculation
\n";
$arglist = $ENV{'QUERY_STRING'};
if (length($arglist) < 3)
{
print<
Change these fields as desired:
Principal Loan Balance
Annual Interest Rate (%)
Amortization Length
(Years)
Show full amortization table?
EOF
exit;
}
@f = split("&",$arglist);
$prin = substr(@f[0],5); $int = substr(@f[1],4);
$term = substr(@f[2],5); $full= substr(@f[3],5);
$stry2 = $stry;
for ($i = 1; $i < 13; $i++) { if (@m[$i] eq $strm) { $strt = $i; } }
print "
For the given values:
\n";
print "- Principal = \$ $prin \n";
print "
- Interest Rate = $int % \n";
print "
- Term = $term years\n";
print "
The following mortgage would result for $stry :
\n";
$tt = $term * 12; $ir = $int / 1200;
$temp = (1.0 / (1 + $ir) ** $tt);
$paymt = $prin * $ir / (1 - $temp);
$tint = $paymt * $tt - $prin;
$aint = $tint / $term /12;
$bal = $prin; $yrint = 0; $yrprin = 0;
$bbal = $prin; $byrint = 0; $byrprin = 0;
for ($i = 1; $i <= $term; $i++ )
{
for ($j = 1; $j <= 12; $j++) {
$mint = $ir * $bal; $bal = $bal - $paymt + $mint;
$yrint = $yrint + $mint; $mprin = $paymt - $mint;
$yrprin = $yrprin + $mprin;
$bmint = $ir * $bbal; $bbal = $bbal - $paymt + $bmint;
$byrint = $byrint + $bmint; $bmprin = $paymt - $bmint;
$byrprin = $byrprin + $bmprin;
}
$bbal = $bbal - $paymt; $byrprin = $byrprin + $paymt;
if ($bbal < 0) { $bbal = 0; }
printf(" - Year # %2d : Principal Remaining: Standard \$ %7.2f, Biweekly \$ %7.2f\n",
$i,$bal,$bbal);
}
print"
Where the final summary is
\n";
printf ("- Monthly Payment: \$ %7.2f\n
- Total Int:\$ %9.2f\n
- %4s Int \$ %8.2f\n
- %4s Int \$ %8.2f\n",
$paymt, $tint, $stry, $first_yr, $yr2_nam, $snd_yr);
printf ("
- End Bal Dec $yr2_nam: \$ %7.2f\n",$yr2_bal);
printf ("
- Avg Int each Month: \$ %7.2f\n",$aint);
print "
\n";
printf (" - Biweekly Payment: \$ %7.2f\n
- Total Int:\$ %9.2f\n
- %4s Int \$ %8.2f\n
- %4s Int \$ %8.2f\n",
$bpaymt, $btint, $bstry, $bfirst_yr, $byr2_nam, $bsnd_yr);
printf ("
- End Bal Dec $yr2_nam: \$ %7.2f\n",$byr2_bal);
printf ("
- Avg Int each BiWeekly Period: \$ %7.2f\n",$baint);