PHP 之房贷计算器、组合贷

这篇具有很好参考价值的文章主要介绍了PHP 之房贷计算器、组合贷。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、等额本金

// (等额本金)
//$loanAmount=>贷款金额
//$loanPeriod=>贷款年限
//$interestRate=>贷款利息
function calculateEqualPrincipalPayment($loanAmount, $loanPeriod, $interestRate)
{
    $monthlyPrincipal = $loanAmount / ($loanPeriod * 12);
    $monthlyInterest = $loanAmount * ($interestRate / 100) / 12;
    $remainingAmount = $loanAmount;

    $result = [];

    for ($i = 1; $i <= $loanPeriod * 12; $i++) {
        $interest = $remainingAmount * ($interestRate / 100) / 12;
        $principal = $monthlyPrincipal;
        $remainingAmount -= $monthlyPrincipal;

        $monthlyPayment = $principal + $interest;

        $result[$i] = [
            'month' => $i,//期数
            'principal' => round($principal, 2),//月供本金
            'interest' => round($interest, 2),//月供利息
            'monthlyPayment' => round($monthlyPayment, 2),//月供总额
            'remainingAmount' => round($remainingAmount, 2),//剩余本金
        ];
    }

    return $result;
}

二、等额本息  

// (等额本息)
//$loanAmount=>贷款金额
//$loanPeriod=>贷款年限
//$loanPeriod=>贷款利率
function calculateEqualInstallmentPayment($loanAmount, $loanPeriod, $interestRate)
{
    $monthlyInterestRate = $interestRate / 12 / 100;
    $numOfMonthlyPayments = $loanPeriod * 12;

    $monthlyPayment = $loanAmount * $monthlyInterestRate * pow(1 + $monthlyInterestRate, $numOfMonthlyPayments)
        / (pow(1 + $monthlyInterestRate, $numOfMonthlyPayments) - 1);

    $result = [];

    for ($i = 1; $i <= $numOfMonthlyPayments; $i++) {
        $interest = $loanAmount * $monthlyInterestRate;
        $principal = $monthlyPayment - $interest;
        $remainingAmount = $loanAmount - $principal;

        $result[$i] = [
            'month' => $i,//期数
            'principal' => round($principal, 2),//期数
            'interest' => round($interest, 2),//月供本金
            'monthlyPayment' => round($monthlyPayment, 2),//月供总额
            'remainingAmount' => round($remainingAmount, 2),//剩余本金
        ];

        $loanAmount = $remainingAmount;
    }

    return $result;
}

三、公积金和商业贷组合贷款

// 测试组合贷款计算()等额本息
function calculateCombinationLoan($commercialLoanAmount, $commercialLoanPeriod, $commercialInterestRate, $fundLoanAmount, $fundLoanPeriod, $fundInterestRate)
{
    // 计算商业贷款的还款计划
    $commercialRepayments = calculateEqualInstallmentPayment($commercialLoanAmount, $commercialLoanPeriod, $commercialInterestRate);

    // 计算公积金贷款的还款计划
    $fundRepayments = calculateEqualInstallmentPayment($fundLoanAmount, $fundLoanPeriod, $fundInterestRate);

    $arr_ti = $commercialRepayments;
    $arr_ti_duan = $fundRepayments;

    $newArray = [];
    foreach ($arr_ti as $is => $repayment) {
            $shangye_monthlyPayment = $repayment["monthlyPayment"] ?: 0;
            $jijin_monthlyPayment = $arr_ti_duan[$is]["monthlyPayment"] ?: 0;
      
        $newArray[] = [
            "month" => $repayment["month"],
            "jijin_monthlyPayment" => round($jijin_monthlyPayment, 2),
            "shangye_monthlyPayment" => round($shangye_monthlyPayment, 2),
            "monthlyPayment" => round(($repayment["monthlyPayment"] + $arr_ti_duan[$is]["monthlyPayment"]), 2),
            "interest" => round(($repayment["interest"] + $arr_ti_duan[$is]["interest"]), 2),
        ];
    }
    return $newArray;
}



// 测试组合贷款计算(等额本金)
function calculatePrincipaltionLoan($commercialLoanAmount, $commercialLoanPeriod, $commercialInterestRate, $fundLoanAmount, $fundLoanPeriod, $fundInterestRate)
{
    // 计算商业贷款的还款计划
    $commercialRepayments = calculateEqualPrincipalPayment($commercialLoanAmount, $commercialLoanPeriod, $commercialInterestRate);

    // 计算公积金贷款的还款计划
    $fundRepayments = calculateEqualPrincipalPayment($fundLoanAmount, $fundLoanPeriod, $fundInterestRate);

    $arr_ti = $commercialRepayments;
    $arr_ti_duan = $fundRepayments;

  
    $newArray = [];
    foreach ($arr_ti as $is => $repayment) {
            $shangye_monthlyPayment = $repayment["monthlyPayment"] ?: 0;
            $jijin_monthlyPayment = $arr_ti_duan[$is]["monthlyPayment"] ?: 0;
     
        $newArray[] = [
            "month" => $repayment["month"],
            "jijin_monthlyPayment" => round($jijin_monthlyPayment, 2),
            "shangye_monthlyPayment" => round($shangye_monthlyPayment, 2),
            "monthlyPayment" => round(($repayment["monthlyPayment"] + $arr_ti_duan[$is]["monthlyPayment"]), 2),
            "interest" => round(($repayment["interest"] + $arr_ti_duan[$is]["interest"]), 2),
        ];
    }
    return $newArray;
}

四、可实现效果

文章来源地址https://www.toymoban.com/news/detail-643385.html

到了这里,关于PHP 之房贷计算器、组合贷的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 房贷计算器微信小程序原生语言

    效果: 输入 300万 结果 还款明细 一共有3个页面 1、输入页面 2、结果页面 3、详情页面 index.wxml文件

    2024年04月28日
    浏览(62)
  • 基于html5+javascript技术开发的房贷利率计算器

    房贷计算器是一款专为购房者设计的实用工具应用,其主要功能是帮助用户详细计算房贷的还款金额、利息以及还款计划等。通过这款软件,用户可以更加便捷地了解到自己的还款情况和计划,从而更好地规划自己的财务。下面将对房贷计算器进行详细的介绍。 房贷计算器体

    2024年02月08日
    浏览(46)
  • Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)

    1.新建一个JavaWeb项目hslcalweb,设置tomcat10。 2.创建房贷计算器JavaBean:HslCalBean.java,增加以下的属性,并生成Getter/Setter方法。 3.生成默认和带三个已知参数的构造方法。 4.增加计算器的计算方法cal() 6.新建一个控制器Servlet:HslCalServlet.java,映射的URL:/hslcal,从浏览器输入参数调

    2024年02月08日
    浏览(33)
  • JAVA制作的简易计算器——傻瓜计算器

    用JAVA编写的傻瓜计算器 作用: 1.可以实现加法、减法、乘法、除法简单运算且是单一运算,不可混合使用。 2.CE为清除键 3.没有小数点O(∩_∩)O 思路: 创建JFrame窗口,设置标题,创建JButton,创建文本框JTextField用作显示。 先定义各种按钮类型,用作成员。定义窗口方法对窗口

    2024年02月11日
    浏览(44)
  • 用javascript做一个计算器,用js做一个计算器代码

    大家好,给大家分享一下怎么用javascript做一个简单的计算器,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 页面布局设计(HTML+CSS)   由于在之前的博客中有对html和css进行详细的讲解,再次就不多叙述,直接上代码。因为js中用到了JQuery选择器所以在

    2024年02月04日
    浏览(68)
  • MFC基于对话框——仿照Windows计算器制作C++简易计算器

    目录 一、界面设计 二、设置成员变量 三、初始化成员变量  四、初始化对话框 ​五、添加控件代码 1.各个数字的代码(0~9) 2.清除功能的代码 3.退格功能的代码 4.加减乘除功能的代码 5.小数点功能的代码 6.正负号功能的代码 7.等于功能的代码 六、源码领取方式 制作好之后

    2024年02月05日
    浏览(66)
  • arcgis字段计算器

    1、两字段叠加 。要求待叠加的字段类型为文本或字符串类型。如下:  2、字符串部分提取。

    2024年02月14日
    浏览(40)
  • JAVA简易计算器

    1.C是清除键,功能是将之前所输入的数字、计算结果等信息全部归零 2.CE,清除当前输入的数据或符号 3.单击MS存储当前显示值,可以理解为放到存储区 4.单击MC清除存储区数值 5.单击MR将存储区数据显示到屏幕上 6.M+:当前显示的数与存储区的数相加 7.M-:当前显示的数与存储

    2024年02月09日
    浏览(50)
  • QT 简易计算器

    2024年02月09日
    浏览(43)
  • java 简易计算器

    1.使用Java图形界面组件设计软件,界面如图所示。 2.软件能够满足基本的“加、减、乘、除”等运算要求。 3.程序代码清晰,语法规范,结构合理,逻辑正确。 先分析,计算器大概是由三个大部分组成的:菜单栏,显示框,按钮。 所以定义一个类cal继承JFrame。 我们定义完后

    2024年02月01日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包