纯js版本房贷计算器开源
栏目: JavaScript · 发布时间: 5年前
内容简介:这个代码是蛮久之前写的,当时还是在易居,纯js版本的房贷计算器,界面精美【界面版权归易居房友,请勿抄袭】。后来我基于此代码转换过一个react版本的,其实核心代码都一样,就是我这个纯js里面的代码。假如有需要,可以借鉴,但是不能原封不动的抄袭。github地址:
前言
这个代码是蛮久之前写的,当时还是在易居,纯js版本的房贷计算器,界面精美【界面版权归易居房友,请勿抄袭】。后来我基于此代码转换过一个react版本的,其实核心代码都一样,就是我这个纯js里面的代码。假如有需要,可以借鉴,但是不能原封不动的抄袭。
界面
源码地址:
github地址: https://github.com/confidence68/houseCal
预览地址: https://www.haorooms.com/uploads/loancal/
核心代码
//等额本息计算 benxi: function (type, num, year, lilv) { //每月月供额=〔贷款本金×月利率×(1+月利率)^还款月数〕÷〔(1+月利率)^还款月数-1〕 var mouth = parseInt(year) * 12, mouthlilv = parseFloat(lilv) / 12, dknum = parseFloat(num) * 10000; //每月月供 var yuegong = (dknum * mouthlilv * Math.pow((1 + mouthlilv), mouth)) / (Math.pow((1 + mouthlilv), mouth) - 1); //总利息=还款月数×每月月供额-贷款本金 var totalLixi = mouth * yuegong - dknum; //还款总额 总利息+贷款本金 var totalPrice = totalLixi + dknum, leftFund = totalLixi + dknum; //循环月份 var mouthdataArray = [], nowmouth = new Date().getMonth(), realmonth = 0; for (var i = 1; i <= mouth; i++) { realmonth = nowmouth + i; var yearlist = Math.floor(i / 12); realmonth = realmonth - 12 * yearlist; if (realmonth > 12) { realmonth = realmonth - 12 } //console.log(realmonth) //每月应还利息=贷款本金×月利率×〔(1+月利率)^还款月数-(1+月利率)^(还款月序号-1)〕÷〔(1+月利率)^还款月数-1〕 var yuelixi = dknum * mouthlilv * (Math.pow((1 + mouthlilv), mouth) - Math.pow((1 + mouthlilv), i - 1)) / (Math.pow((1 + mouthlilv), mouth) - 1); //每月应还本金=贷款本金×月利率×(1+月利率)^(还款月序号-1)÷〔(1+月利率)^还款月数-1〕 var yuebenjin = dknum * mouthlilv * Math.pow((1 + mouthlilv), i - 1) / (Math.pow((1 + mouthlilv), mouth) - 1); leftFund = leftFund - (yuelixi + yuebenjin); if (leftFund < 0) { leftFund = 0 } mouthdataArray[i - 1] = { monthName: realmonth + "月", yuelixi: yuelixi, yuebenjin: yuebenjin, //剩余还款 leftFund: leftFund } } return { yuegong: yuegong, totalLixi: totalLixi, totalPrice: totalPrice, mouthdataArray: mouthdataArray, totalDknum: num, year: year }; }, //等额本金计算 benjin: function (type, num, year, lilv) { var mouth = parseInt(year) * 12, mouthlilv = parseFloat(lilv) / 12, dknum = parseFloat(num) * 10000, yhbenjin = 0; //首月还款已还本金金额是0 //每月应还本金=贷款本金÷还款月数 var everymonthyh = dknum / mouth //每月月供额=(贷款本金÷还款月数)+(贷款本金-已归还本金累计额)×月利率 var yuegong = everymonthyh + (dknum - yhbenjin) * mouthlilv; //每月月供递减额=每月应还本金×月利率=贷款本金÷还款月数×月利率 var yuegongdijian = everymonthyh * mouthlilv; //总利息=〔(总贷款额÷还款月数+总贷款额×月利率)+总贷款额÷还款月数×(1+月利率)〕÷2×还款月数-总贷款额 var totalLixi = ((everymonthyh + dknum * mouthlilv) + dknum / mouth * (1 + mouthlilv)) / 2 * mouth - dknum; //还款总额 总利息+贷款本金 var totalPrice = totalLixi + dknum, leftFund = totalLixi + dknum; //循环月份 var mouthdataArray = [], nowmouth = new Date().getMonth(), realmonth = 0; for (var i = 1; i <= mouth; i++) { realmonth = nowmouth + i; var yearlist = Math.floor(i / 12); realmonth = realmonth - 12 * yearlist; if (realmonth > 12) { realmonth = realmonth - 12 } yhbenjin = everymonthyh * (i - 1); var yuebenjin = everymonthyh + (dknum - yhbenjin) * mouthlilv; //每月应还利息=剩余本金×月利率=(贷款本金-已归还本金累计额)×月利率 var yuelixi = (dknum - yhbenjin) * mouthlilv; leftFund = leftFund - yuebenjin; if (leftFund < 0) { leftFund = 0 } mouthdataArray[i - 1] = { monthName: realmonth + "月", yuelixi: yuelixi, //每月本金 yuebenjin: everymonthyh, //剩余还款 leftFund: leftFund } } return { yuegong: yuegong, totalLixi: totalLixi, totalPrice: totalPrice, yuegongdijian: yuegongdijian, mouthdataArray: mouthdataArray, totalDknum: num, year: year } }
下载地址:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 聆听中国开源最强音 | 国内大厂开源项目齐聚 OSCAR 开源先锋日
- 小米 9 开源内核代码,上市即开源
- 开源 | 陌陌风控系统正式开源
- 开源 |《Go 语言高级编程》开源图书
- 开源不只是“喊喊” 看红帽的开源之道
- 中国开源走向世界,深圳落成国际开源谷
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。