代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>按揭贷款计算工具--QQ:83056224</title>
</HEAD>
<body>
<form name="result01" method="post" id="result01">
<table cellpadding="0" cellspacing="0" width=563 border="0" align="center">
<tr height=10>
<td></td>
</tr>
<tr>
<td align="center"><table cellSpacing="0" cellPadding="3" width="100%" border="0">
<tr>
<td><b>按揭贷款计算(等额本息还款/等额本金还款)</b></td>
</tr>
<tr>
<td align=center>
<table cellpadding=3 bgcolor="#f5f5f5" style="BORDER-RIGHT: #c6c9ce 1px solid; BORDER-TOP: #c6c9ce 1px solid; BORDER-LEFT: #c6c9ce 1px solid; BORDER-BOTTOM: #c6c9ce 1px solid; BORDER-COLLAPSE: collapse" borderColor="#c6c9ce" cellSpacing="0" width="98%">
<tr>
<td width=5></td>
<td>贷款金额:</td>
<td class="hui11"><input id="total" type="text" style="WIDTH: 100px; HEIGHT: 22px" size="18"> 元</td>
<td>贷款期限:</td>
<td class="hui11"><input id="termnum" style="WIDTH: 60px; HEIGHT: 22px" type="text" size="10"> 月(1-360)</td>
<td width=5></td>
</tr>
<tr>
<td></td>
<td>贷款年利率:</td>
<td class=hui11><input id="yearrate" style="WIDTH: 60px; HEIGHT: 22px" type="text" size="10"> %</td>
<td colspan=3><input name=payfun type=radio id="radiode" value="de">等额本息还款 <input name=payfun type=radio id="radiodj" value="dj"/>等额本金还款</td>
</tr>
<Tr><td></td><td background="/house/images/Calculators_line2.GIF" colspan=4 height=5></td><td></td></tr>
<tr>
<td></td><td align="middle" colSpan="4"><input οnclick="CalculateMonth(this.form)" type="button" value="计算"> <input οnclick="Reset(this.form)" type="button" value="重置"></td><td></td>
</tr>
</table>
</td>
</tr>
<tr style="display:none">
<td align=center>
<table cellpadding=3 style="BORDER-RIGHT: #c6c9ce 1px solid; BORDER-TOP: #c6c9ce 1px solid; BORDER-LEFT: #c6c9ce 1px solid; BORDER-BOTTOM: #c6c9ce 1px solid; BORDER-COLLAPSE: collapse" borderColor="#c6c9ce" cellSpacing="0" rules="all" width="98%" border="1">
<tr>
<td width="90" height=24 bgcolor="#dbdbdb" align=center>还款方式</td>
<td width="80" bgcolor="#dbdbdb" align=center>还款总额</td>
<td width="80" bgcolor="#dbdbdb" align=center>利息总额</td>
<td bgcolor="#dbdbdb" align=center>月还款金额</td>
</tr>
<tr>
<td bgcolor="#f5f5f5" align=center>等额本息还款</td>
<td align=center><input id="totalpay1" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none" type="text"></td>
<td align=center><input id="ratetotal1" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none" type="text"></td>
<td align=center><textarea id="monthpay1" readonly style="WIDTH: 230px; HEIGHT: 62px" rows="4" cols="25"></textarea></td>
</tr>
<tr>
<td bgcolor="#f5f5f5" align=center>等额本金还款</td>
<td align=center><input id="totalpay2" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none" type="text"></td>
<td align=center><input id="ratetotal2" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none" type="text"></td>
<td align=center bgcolor="#f5f5f5" height=74><textarea id="monthpay2" readonly style="WIDTH: 230px; HEIGHT: 62px" rows="4" cols="25"></textarea></td>
</tr>
</table>
</td>
</tr>
</table>
<script language="javascript">
function Reset(obj)
{
event.returnValue = false;
obj.total.value = "";
obj.yearrate.value = "";
obj.termnum.value = "";
obj.totalpay1.value = "";
obj.totalpay2.value = "";
obj.ratetotal1.value = "";
obj.ratetotal2.value = "";
obj.monthpay1.value = "";
obj.monthpay2.value = "";
}
function CalculateMonth(obj)
{
event.returnValue = false;
var payfunc;
var sflag = false;
if (obj.total.value == "")
{
alert("请输入贷款金额!");
return;
}
if (obj.yearrate.value == "")
{
alert("请输入贷款年利率!");
return;
}
if (obj.termnum.value == "")
{
alert("请输入贷款总期数!");
return;
}
for (i=0; i<obj.payfun.length;i++)
{
if (obj.payfun[i].checked==true)
{
payfunc = obj.payfun[i].value;
sflag = true;
}
}
if (sflag==false)
{
alert("请选择还款方式!");
return;
}
var total = obj.total.value;
var yearrate = obj.yearrate.value;
var terms = obj.termnum.value;
if ((terms <= 0)||(terms >360))
{
alert("贷款月数输入不正确!");
return;
}
if (total <= 0)
{
alert("贷款总额输入不正确!");
return;
}
if ((yearrate <= 0)||(yearrate >=100))
{
alert("贷款年利率输入不正确!");
return;
}
Get(total,yearrate,terms,payfunc);
/*
var monthpay1 = MyRound(GetMonthPay1(total,yearrate,terms));
var lastmonthpay1 = MyRound(GetLastMonthPay1(total,yearrate,terms,monthpay1));
var totalpay1 = MyRound(monthpay1*(terms-1)+lastmonthpay1);
var totalrate1 = MyRound(totalpay1-total);
obj.totalpay1.value = totalpay1;
obj.ratetotal1.value = totalrate1;
//obj.monthpay1.value = "前"+(terms-1)+"月月还款为:"+monthpay1+",";
//obj.monthpay11.value = "最后月月还款为:"+lastmonthpay1;
var totalpay2 = 0;
var totalrate2 = 0;
var monthpay2 = 0;
obj.monthpay1.value = "";
obj.monthpay2.value = "";
for (k=0;k<terms-1;k++)
{
monthpay2 = MyRound(GetMonthPay2(total,yearrate,terms,k));
totalpay2 = MyRound(totalpay2+monthpay2);
obj.monthpay2.value += "第"+(k+1)+"月还款:"+monthpay2+"/r/n";
obj.monthpay1.value += "第"+(k+1)+"月还款:"+monthpay1+"/r/n";
}
var lastmonthpay2 = MyRound(GetLastMonthPay2(total,yearrate,terms));
totalpay2 = MyRound(totalpay2 + lastmonthpay2);
obj.monthpay2.value += "第"+terms+"月还款:"+lastmonthpay2+"/r/n";
obj.monthpay1.value += "第"+terms+"月还款:"+lastmonthpay1+"/r/n";
totalrate2 = MyRound(parseFloat(totalpay2)-total);
obj.totalpay2.value = totalpay2;
obj.ratetotal2.value = totalrate2;*/
}
function ChangeMonthType(obj)
{
obj.yearrate.value = GetYearRate(parseInt(obj.paytype.options[obj.paytype.selectedIndex].value),parseInt(obj.termnum.value)/12);
}
//ChangeMonthType(document.Calculators);
</script></td>
</tr>
<tr height=8>
<td></td>
</tr>
<tr style="display:none" id="de">
<td><table cellpadding="3" style="BORDER-COLLAPSE: collapse" align="center" borderColor="#c6c9ce"
cellSpacing="0" rules="all" width="546" border="1">
<tr>
<td width="90" height="24" bgcolor="#dbdbdb" align="center">还款方式</td>
<td align="center">等额本息还款</td>
<td width="80" bgcolor="#dbdbdb" align="center">还款总额</td>
<td align="center"><input id="detotalpay1" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none"
type="text"></td>
<td width="80" bgcolor="#dbdbdb" align="center">利息总额</td>
<td align="center"><input id="deratetotal1" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none"
type="text"></td>
</tr>
</table>
<table cellpadding="0" align="center" cellSpacing="0" width="563" border="0">
<tr height="10">
<td></td>
</tr>
</table>
<div id="calRdiv"></div>
</td>
</tr>
<tr style="display:none" id="dj">
<td>
<table cellpadding="3" style="BORDER-COLLAPSE: collapse" align="center" borderColor="#c6c9ce"
cellSpacing="0" rules="all" width="546" border="1">
<tr>
<td width="90" height="24" bgcolor="#dbdbdb" align="center">还款方式</td>
<td align="center">等额本金还款</td>
<td width="80" bgcolor="#dbdbdb" align="center">还款总额</td>
<td align="center"><input id="djtotalpay2" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none"
type="text"></td>
<td width="80" bgcolor="#dbdbdb" align="center">利息总额</td>
<td align="center"><input id="djratetotal2" readonly style="BORDER-LEFT-COLOR: white; BORDER-BOTTOM-COLOR: white; WIDTH: 80px; BORDER-TOP-STYLE: none; BORDER-TOP-COLOR: white; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT-COLOR: white; BORDER-BOTTOM-STYLE: none"
type="text"></td>
</tr>
</table>
<table cellpadding="0" align="center" cellSpacing="0" width="563" border="0">
<tr height="10">
<td></td>
</tr>
</table>
<div id="calCdiv"><FONT face="宋体"></FONT></div>
</td>
</tr>
<tr><td>转载注明出处!QQ:83056224</td></tr>
</table>
<script language="javascript">
function Get(total,yearrate,terms,payfun)
{
var total = total;
var yearrate = yearrate;
var terms = terms;
var payfun = payfun;
var obj = document.result01;
obj.total.value = total;
obj.yearrate.value = yearrate;
obj.termnum.value = terms;
for(j=0;j<obj.payfun.length;j++)
{
if(obj.payfun[j].value==payfun)
{
obj.payfun[j].checked = true;
}
}
if(payfun=="de")
{
de.style.display = "";
}
if(payfun=="dj")
{
dj.style.display = "";
}
function calRate()
{
var corpus=parseFloat(total);
var rates=(parseFloat(yearrate))/100/12;
var rateMon=parseInt(terms);
var sbResult=calculateR(rates,rateMon,corpus);
document.getElementById("calRdiv").innerHTML=sbResult;
sbResult=calculateC(rates,rateMon,corpus);
document.getElementById("calCdiv").innerHTML=sbResult;
}
//计算等额还款
function calculateR(rates,rateMon,corpus)//利率、期限、本金
{
var limitTime=rateMon;//贷款期限
var timeLeft=limitTime;
var corpusLeft=corpus;//等额还款之本金
var corpusLeftMon=corpus;//等额还款之剩余本金
var capMon,corpusMon,varerestMon;
var capTotle=0,corpusTotle=0,varerestTotle=0;
var sbResultR;
var rate=rates;
sbResultR=createTable(sbResultR);
for(var i=1;i<limitTime;i++)
{
var ratePow=Math.pow(rate+1,timeLeft);//每期贷款利率
capMon=(corpusLeft*rate*ratePow)/(ratePow-1);//月供
varerestMon=corpusLeftMon*rate;//月供利息
corpusMon=capMon-varerestMon;//月供本金
corpusLeftMon-=corpusMon;//本金余额
capTotle+=capMon;//还款总额
varerestTotle+=varerestMon;//利息总额
corpusTotle+=corpusMon;//本金总额
sbResultR=output(sbResultR,i,capMon,varerestMon,corpusMon,corpusLeftMon,rate*12*100);
}
///最后一期
//alert(corpusLeftMon);
varerestMon=corpusLeftMon*rate;//月供利息
corpusMon=corpusLeftMon;//月供本金
capMon=varerestMon + corpusLeftMon;//月供
corpusLeftMon-=corpusMon;//本金余额
capTotle+=capMon;//还款总额
varerestTotle+=varerestMon;//利息总额
corpusTotle+=corpusMon;//本金总额
sbResultR=output(sbResultR,limitTime,capMon,varerestMon,corpusMon,corpusLeftMon,rate*12*100);
sbResultR=output(sbResultR,9999,capTotle,varerestTotle,corpusTotle,corpusLeftMon,0);
sbResultR=endTable(sbResultR);
obj.detotalpay1.value = (Math.round(capTotle*100))/100;//还款总额
obj.deratetotal1.value = (Math.round(varerestTotle*100))/100;//利息总额
return sbResultR;
}
//计算等额本金
function calculateC( rates,rateMon,corpus)
{
var limitTime=rateMon;
var timeLeft=limitTime;
var corpusLeftMon=corpus;//等额本金之剩余本金
var capMon,corpusMon,varerestMon;
var capTotle=0,varerestTotle=0,corpusTotle=0;
corpusMon=corpus/limitTime;
var rate=rates;
var sbResultC;
sbResultC=createTable(sbResultC);
for(var i=1;i<=limitTime;i++)
{
varerestMon=corpusLeftMon*rate;
capMon=corpusMon+varerestMon;
corpusLeftMon-=corpusMon;
capTotle+=capMon;
varerestTotle+=varerestMon;
corpusTotle+=corpusMon;
sbResultC=output(sbResultC,i,capMon,varerestMon,corpusMon,corpusLeftMon,rate*12*100);
}
sbResultC=output(sbResultC,9999,capTotle,varerestTotle,corpusTotle,0,0);
sbResultC=endTable(sbResultC);
obj.djtotalpay2.value = (Math.round(capTotle*100))/100;//还款总额
obj.djratetotal2.value = (Math.round(varerestTotle*100))/100;//利息总额
return sbResultC;
}
function createTable(sbResult)
{
sbResult="<table cellpadding=3 style='BORDER-COLLAPSE: collapse' align=center borderColor=#c6c9ce cellSpacing=0 rules=all width=546 border=1>";
sbResult+="<tr height=24><td width=20% bgcolor=#dbdbdb align=center>期数</td><td width=20% bgcolor=#dbdbdb align=center>月供</td><td width=20% bgcolor=#dbdbdb align=center>月供本金</td><td width=20% bgcolor=#dbdbdb align=center>月供利息</td><td width=20% bgcolor=#dbdbdb align=center>本金余额</td></tr>";
return sbResult;
}
function endTable(sbResult)
{
sbResult+="</table>";
return sbResult;
}
function formatnumber(num)
{
var dotIndex=num.indexOf(".");
var length=num.length;
if(dotIndex==length-2)
{num=num+"0";}
switch(dotIndex){
case -1:num=num+".00";break;
// case 2:num=num+"0";break;
default:break;}
/* var length=num.length;
if(dotIndex==-1)
{num=num+".00";
return num;
}
if(dotIndex==length-1)
{num+"0";return num;}*/
return num;
}
function output(sbResult,month,cap,varerest,corpus,corpusLeftMon,rate)
{
sbResult+="<tr><td align=center>";
if(month==9999)
sbResult+="总计";
else
sbResult+=month.toString();
cap=(Math.round(cap*100))/100;
sbResult+="</td><td align=middle><input name='repayment' id='repayment_" + month + "' type='text' size='10' maxlength='64' value='"+formatnumber(cap.toString())+"'";
sbResult+="</td><td align=middle>";
corpus=(Math.ceil(corpus*100))/100;
sbResult+=formatnumber(corpus.toString());
sbResult+="</td><td align=middle>";
varerest=(Math.round(varerest*100))/100;
sbResult+=formatnumber(varerest.toString());
sbResult+="</td><td align=middle>";
if(month==9999)
{
sbResult+="---";
sbResult+="</td>";
//sbResult+="---";
}
else
{
corpusLeftMon=(Math.round(corpusLeftMon*100))/100;
sbResult+=formatnumber(corpusLeftMon.toString());
sbResult+="</td>";
//rate=(Math.round(rate*1000))/1000
//sbResult+=rate.toString();
}
sbResult+="</tr>";
return sbResult;
}
calRate();
}
</script>
</form>
</body>
</HTML>