个人存款计算器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>利息计算器</title>
    <script type="text/javascript" charset="utf-8" src="js/TimeCalendarForCal.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/AjaxHelper.js" ></script>
    <link rel="stylesheet" type="text/css" href="css/cal.css">
</head>
<body>
    <div class="c_column">
        <div class="c_header">个 人 存 款 计 算 器</div>
        <div class="c_con">
            <table cellspacing="1" cellpadding="0" border="0" class="c_table">
                <tr class="c_row">
                    <td id="tdl_1" class="txt">存款类型</td>
                    <td id="tdr_1" colspan="3" class="rightpart">
                        <div id="r_div_1"><select id="savingtype" onchange="ontypechange()"></select></div>
                    </td>
                </tr>
                <tr class="c_row">
                    <td id="tdl_2" class="txt">币种</td>
                    <td id="tdr_2" class="rightpart">
                        <div id="r_div_2"><select id="savingcurrency" onchange="oncurchange()"></select></div>
                    </td>
                    <td id="tdl_3" class="txt">初始存款金额</td>
                    <td id="tdr_3" class="rightpart">
                        <div id="r_div_3"><input id="initamount" type="text" onfocus="showtip()" onblur="hidetip()" /></div>
                        <div id="divtip" class="tip" style="display:none"><i></div>
                    </td>
                </tr>
                <tr class="c_row">
                    <td id="tdl_4" class="txt">存款期限</td>
                    <td id="tdr_4" class="rightpart"><div id="r_div_4"><select id="savingterm" onchange="oncurchange()"></select></div></td>
                    <td id="tdl_5" class="txt">年利率</td>
                    <td id="tdr_5" class="rightpart"><div id="r_div_5" style="height:20px; line-height:20px"><input id="savingrate" type="text"/>%</div></td>
                </tr>
                <tr class="c_row">
                    <td id="tdl_6" class="txt">初始存入日期</td>
                    <td id="tdr_6" class="rightpart"><div id="r_div_6"><input id="initdate" type="text" class="shortinput" onclick="getCMBCalendar('yyyy-mm-dd', 'B', new Date()).show(this);" readonly="readonly" onchange="onDHLBchange();"/></div></td>
                    <td id="tdl_7" class="txt">月存入金额</td>
                    <td id="tdr_7" class="rightpart"><div id="r_div_7"><input id="monthamount" type="text"/></div></td>
                </tr>
                <tr class="c_row">
                    <td id="tdl_8" class="txt">支取频次</td>
                    <td id="tdr_8" class="rightpart"><div id="r_div_8"><select id="drawfre"></select></div></td>
                    <td id="tdl_9" class="txt">提取日期</td>
                    <td id="tdr_9" class="rightpart"><div id="r_div_9"><input id="drawdate" type="text" class="shortinput" onclick="getCMBCalendar('yyyy-mm-dd', 'B', new Date()).show(this);" readonly="readonly" onchange="onDHLBchange();"/></div></td>
                </tr>
            </table>
            <div class="divbtn">
                <input id="btnCal" type="button" value="提交试算" class="btncal" onclick="onCalBtnClick()"/>
            </div>
            <table  cellspacing="1" cellpadding="0" border="0" class="c_table">
                <tr  id="tramount" class="c_row" style="display:none">
                    <td class="txt">每次支取金额</td>
                    <td class="paddingleft"><input id="termamount" type="text" readonly="readonly" class="shortinput" /></td>
                </tr>
                <tr class="c_row">
                    <td class="txt">所得利息金额</td>
                    <td class="paddingleft"><input id="interest" type="text" readonly="readonly" class="shortinput" /></td>
                </tr>
                <tr class="c_row">
                    <td class="txt">利息税金额</td>
                    <td class="paddingleft"><input id="tax" type="text" readonly="readonly" class="shortinput"/></td>
                </tr>
                <tr class="c_row">
                    <td class="txt">本息合计(税后)</td>
                    <td class="paddingleft"><input id="result" type="text" readonly="readonly" class="shortinput" /></td>
                </tr>
            </table>
            <div style="width:95%; height:60px; line-height:20px; margin:0 auto; margin-top:20px">
            温馨提示:<br /> 
            1. 理财计算器的数据、计算结果仅供参考。具体以办理业务或交易实际结果为准,据此投资风险自负。<br /> 
            2. 理财计算器在计息过程中,一年以360天为标准。
            </div>
        </div>
    </div>
    <script type="text/javascript">
        var path = "/jsq";
        ClearAll();
        ClearCalResult();
        var ajaxType = new XmlHttp();
        (function getSavingType() {
            var url = path + "/calculator.php?func=getsavingtype";
            ajaxType.getopen(url, successType, failFun);
        })();
        function successType() {
            var data = eval(ajaxType.text);
            try {
                if (0 == data.code) {
                    getID("savingtype").options.add(new Option("==请选择==", ""));
                    var typelist = data.SavingType;
                    for (var i = 0; i < typelist.length; i++) {
                        getID("savingtype").options.add(new Option(typelist[i].value, typelist[i].key));
                    }
                }
            } catch (err) {}
        }
        var CurrencyRecord = "";
        var ajaxchange = new XmlHttp();
        function ontypechange() {
            getID("savingcurrency").options.length = 0;
            ClearAll();
            ClearCalResult();
            switch (getID("savingtype").value) {
                case "hq":
                    SetToReadOnly("4,7,8");
                    if (getID("initdate") && getID("drawdate")) {
                        var d = new Date();
                        getID("initdate").value = d.format("yyyy-MM-dd");
                        d.setFullYear(d.getFullYear() + 1);
                        getID("drawdate").value = d.format("yyyy-MM-dd");
                    }
                    break;
                case "zczq":
                    SetToReadOnly("6,7,8,9");
                    break;
                case "lczq":
                    SetToReadOnly("6,8,9");
                    break;
                case "cbqx":
                    getID("tramount").style.display = "";
                    SetToReadOnly("6,7,9");
                    break;
                case "zclq":
                    getID("tramount").style.display = "";
                    SetToReadOnly("6,7,9");
                    break;
                case "dhlb":
                    SetToReadOnly("4,7,8");
                    if (getID("initdate") && getID("drawdate")) {
                        var d = new Date();
                        getID("initdate").value = d.format("yyyy-MM-dd");
                        d.setFullYear(d.getFullYear() + 1);
                        getID("drawdate").value = d.format("yyyy-MM-dd");
                    }
                    break;
                case "tzck":
                    SetToReadOnly("7,8");
                    if (getID("initdate") && getID("drawdate")) {
                        var d = new Date();
                        getID("initdate").value = d.format("yyyy-MM-dd");
                        d.setFullYear(d.getFullYear() + 1);
                        getID("drawdate").value = d.format("yyyy-MM-dd");
                    }
                    break;
                case "jycx":
                    SetToReadOnly("6,8,9");
                    break;
            }
            if (getID("savingtype").value != "") {
                var url = path + "/calculator.php?func=getdetailbytype&t=" + encodeURIComponent(getID("savingtype").value);
                ajaxchange.getopen(url, successChange, failFun);
            }
        }
        function successChange() {
            var data = eval(ajaxchange.text);
            try {
                if (0 == data.code) {
                    var currencylist = data.Currency;
                    for (var i = 0; i < currencylist.length; i++) {
                        getID("savingcurrency").options.add(new Option(currencylist[i].value, currencylist[i].key));
                    }
                    CurrencyRecord = getID("savingtype").value == "zczq" ? (getID("savingcurrency").value == "10" ? "RMB" : "NotRMB") : "";
                    var termlist = data.Term;
                    getID("savingterm").options.length = 0;
                    if (termlist != null) {
                        for (var i = 0; i < termlist.length; i++) {
                            getID("savingterm").options.add(new Option(termlist[i].value, termlist[i].key));
                        }
                    }
                    var drawfrelist = data.DrawFre;
                    getID("drawfre").options.length = 0;
                    if (drawfrelist != null) {
                        for (var i = 0; i < drawfrelist.length; i++) {
                            getID("drawfre").options.add(new Option(drawfrelist[i].value, drawfrelist[i].key));
                        }
                    }
                    oncurchange();
                }
            } catch (err) {}
        }
        var ajaxcurchange = new XmlHttp();
        function oncurchange() {
            if (getID("savingtype").value == "zczq") {
                if (getID("savingcurrency").value != "10" && CurrencyRecord == "RMB") {
                    ontermchange();
                    CurrencyRecord = "NotRMB";
                }
                if (getID("savingcurrency").value == "10" && CurrencyRecord != "RMB") {
                    ontermchange();
                    CurrencyRecord = "RMB";
                }
            }
            if (getID("savingtype").value != "dhlb") {
                var url = path + "/calculator.php?func=getrate&t=" + encodeURIComponent(getID("savingtype").value) + "&c=" + encodeURIComponent(getID("savingcurrency").value) + "&term=" + encodeURIComponent(getID("savingterm").value);
                ajaxcurchange.getopen(url, successCurChange, failFun);
            } else {
                onDHLBchange();
            }
        }
        function successCurChange() {
            var data = eval(ajaxcurchange.text);
            try {
                if (0 == data.code) {
                    getID("savingrate").value = data.Rate;
                }
            } catch (err) {}
        }
        var ajaxtermchange = new XmlHttp();
        function ontermchange() {
            var url = path + "/calculator.php?func=gettermbycurrency&t=" + encodeURIComponent(getID("savingtype").value) + "&c=" + encodeURIComponent(getID("savingcurrency").value);
            ajaxtermchange.getopen(url, successTermChange, failFun);
        }
        function successTermChange() {
            var data = eval(ajaxtermchange.text);
            try {
                if (0 == data.code) {
                    getID("savingterm").options.length = 0;
                    var termlist = data.Term;
                    if (termlist != null) {
                        for (var i = 0; i < termlist.length; i++) {
                            getID("savingterm").options.add(new Option(termlist[i].value, termlist[i].key));
                        }
                    }
                }
            } catch (err) {}
        }
        //定活两便
        var ajaxDHLBchange = new XmlHttp();
        function onDHLBchange() {
            if (getID("savingtype").value == "dhlb") {
                var days = GetDateDiff(getID("initdate").value, getID("drawdate").value);
                if (days <= 0) {
                    getID("savingrate").value = "";
                } else if (days > 0 && days < 90) {
                    var url = path + "/calculator.php?func=getrate&t=hq&c=10&term=";
                    ajaxcurchange.getopen(url, successDHLBChange, failFun);
                } else if (days >= 90 && days < 180) {
                    var url = path + "/calculator.php?func=getrate&t=zczq&c=10&term=03";
                    ajaxcurchange.getopen(url, successDHLBChange, failFun);
                } else if (days >= 180 && days < 360) {
                    var url = path + "/calculator.php?func=getrate&t=zczq&c=10&term=06";
                    ajaxcurchange.getopen(url, successDHLBChange, failFun);
                } else if (days >= 360) {
                    var url = path + "/calculator.php?func=getrate&t=zczq&c=10&term=12";
                    ajaxcurchange.getopen(url, successDHLBChange, failFun);
                }
            }
        };
        function successDHLBChange() {
            var data = eval(ajaxcurchange.text);
            try {
                if (0 == data.code) {
                    var days = GetDateDiff(getID("initdate").value, getID("drawdate").value);
                    if (days > 0 && days < 90) {
                        getID("savingrate").value = data.Rate;
                    } else {
                        getID("savingrate").value = (data.Rate * 0.6).toFixed(4);
                    }
                }
            } catch (err) {}
        }
        function SetToReadOnly(ids) {
            var idlist = ids.split(",");
            for (var i = 0; i < idlist.length; i++) {
                getID("r_div_" + idlist[i]).style.visibility = "hidden";
                getID("tdr_" + idlist[i]).style.background = "#FFF8E7";
            }
        }
        function ClearAll() {
            for (var i = 1; i <= 9; i++) {
                getID("r_div_" + i).style.visibility = "visible";
                getID("tdr_" + i).style.background = "white";
            }
            getID("initamount").value = "";
            getID("savingrate").value = "";
            getID("initdate").value = "";
            getID("monthamount").value = "";
            getID("drawdate").value = "";
            getID("savingterm").options.length = 0;
            getID("drawfre").options.length = 0;
            getID("savingcurrency").options.length = 0;
            getID("tramount").style.display = "none";
        }
        function onCalBtnClick() {
            //字段检查;
            if (CheckCalItem()) {
                DoCal();
            }
            //计算
        }
        function CheckCalItem() {
            if (getID("savingtype") && getID("savingtype").value == "") {
                alert("请选择存款类型!");
                return false;
            }
            if (getID("savingrate").value == "" || isNaN(getID("savingrate").value) || getID("savingrate").value < 0) {
                alert("请填入正确的年利率值!")
                return false;
            }
            if (getID("initamount") && (getID("initamount").value == "" || isNaN(getID("initamount").value)) || getID("initamount").value < 0) {
                alert("请填入正确的初始存款金额!");
                return false;
            }
            if (getID("savingtype") && (getID("savingtype").value == "lczq" || getID("savingtype").value == "jycx")) {
                if (getID("monthamount").value == "" || isNaN(getID("monthamount").value) || getID("monthamount").value < 0) {
                    alert("请填入正确的月存入金额!");
                    return false;
                }
            }
            if (getID("savingtype") && (getID("savingtype").value == "hq" || getID("savingtype").value == "tzck" || getID("savingtype").value == "dhlb")) {
                if (!compareDay(getID("initdate").value, getID("drawdate").value)) {
                    alert("提取日期必须大于存入日期!");
                    return false;
                }
            }
            return true;
        }
        function DoCal() {
            getID("tax").value = 0;
            switch (getID("savingtype").value) {
                case "hq":
                    var amount = getID("initamount").value;
                    var datecount = GetDateDiff(getID("initdate").value, getID("drawdate").value);
                    var yrate = getID("savingrate").value;
                    var interest = amount * ((datecount * yrate * 0.01) / 360);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "zczq":
                    var amount = getID("initamount").value;
                    var term = getID("savingterm").value;
                    var yrate = getID("savingrate").value;
                    var interest = amount * (yrate * 0.01 * term / 12);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "lczq":
                    var amount = getID("initamount").value;
                    var monthamount = getID("monthamount").value;
                    var term = getID("savingterm").value;
                    var yrate = getID("savingrate").value;
                    amount = monthamount * term
                    //var interest=amount * ( yrate * 0.01 * term / 12) ;
                    var interest = monthamount * ((term * 1 + 1) / 2 * term) * ((yrate / 100) / 12);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "cbqx":
                    var amount = getID("initamount").value;
                    var term = getID("savingterm").value;
                    var drawterm = getID("drawfre").value;
                    var yrate = getID("savingrate").value;
                    var interest = amount * (yrate * 0.01 * term / 12);
                    getID("termamount").value = (interest / (term / drawterm)).toFixed(2);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "zclq":
                    var amount = getID("initamount").value;
                    var term = getID("savingterm").value;
                    var drawterm = getID("drawfre").value;
                    var yrate = getID("savingrate").value;
                    var termbenjin = amount / (term / drawterm);
                    var interest = (amount * 1 + termbenjin * 1) / 2 * (term / drawterm) * drawterm * (yrate * 0.01 / 12);
                    getID("termamount").value = termbenjin.toFixed(2);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "dhlb":
                    var amount = getID("initamount").value;
                    var datecount = GetDateDiff(getID("initdate").value, getID("drawdate").value);
                    var yrate = getID("savingrate").value;
                    var interest = amount * ((datecount * yrate * 0.01) / 360);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "tzck":
                    var amount = getID("initamount").value;
                    var datecount = GetDateDiff(getID("initdate").value, getID("drawdate").value);
                    var yrate = getID("savingrate").value;
                    var interest = amount * ((datecount * yrate * 0.01) / 360);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
                case "jycx":
                    var amount = getID("initamount").value;
                    var monthamount = getID("monthamount").value;
                    var term = getID("savingterm").value;
                    var yrate = getID("savingrate").value;
                    amount = monthamount * term
                    var interest = amount * (yrate * 0.01 * term / 12);
                    getID("interest").value = interest.toFixed(2);
                    getID("result").value = (amount * 1 + interest * 1).toFixed(2);
                    break;
            }
        }
        function ClearCalResult() {
            //清除结果
            if (getID("termamount")){
                getID("termamount").value = "";
            }
            getID("interest").value = "";
            getID("tax").value = "";
            getID("result").value = "";
        }
        function showtip() {
            var type = getID("savingtype").value;
            switch (type) {
                case "hq":
                    break;
                case "zczq":
                    if (getID("savingcurrency").value == "10")
                        getID("divtip").innerHTML = "起存金额人民币50元<i>";
                    else if (getID("savingcurrency").value == "21")
                        getID("divtip").innerHTML = "起存金额50港币<i>";
                    else if (getID("savingcurrency").value == "65")
                        getID("divtip").innerHTML = "起存金额1000日元<i>";
                    else
                        getID("divtip").innerHTML = "起存金额选择币种10元<i>";
                    getID("divtip").style.display = "";
                    break;
                case "lczq":
                    getID("divtip").innerHTML = "起存金额5元<i>";
                    getID("divtip").style.display = "";
                    break;
                case "cbqx":
                    getID("divtip").innerHTML = "起存金额5000元<i>";
                    getID("divtip").style.display = "";
                    break;
                case "zclq":
                    getID("divtip").innerHTML = "起存金额1000元<i>";
                    getID("divtip").style.display = "";
                    break;
                case "dhlb":
                    getID("divtip").innerHTML = "起存金额50元<i>";
                    getID("divtip").style.display = "";
                    break;
                case "tzck":
                    getID("divtip").innerHTML = "开户起存金额5万元<i>";
                    getID("divtip").style.display = "";
                    break;
                case "jycx":
                    getID("divtip").innerHTML = "起存金额50元;本金合计上限2万元<i>";
                    getID("divtip").style.display = "";
                    break;
            }
        }
        function hidetip() {
            getID("divtip").innerHTML = "";
            getID("divtip").style.display = "none";
        }
        
    </script>
</html>

原网址:链接
demo:链接
附件下载:链接