当前位置: 首页 > news >正文

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;if ($fundLoanPeriod > $commercialLoanPeriod) {$arr_ti = $fundRepayments;$arr_ti_duan = $commercialRepayments;}$newArray = [];foreach ($arr_ti as $is => $repayment) {if ($fundLoanPeriod < $commercialLoanPeriod) {$shangye_monthlyPayment = $repayment["monthlyPayment"] ?: 0;$jijin_monthlyPayment = $arr_ti_duan[$is]["monthlyPayment"] ?: 0;} else {$shangye_monthlyPayment = $arr_ti_duan[$is]["monthlyPayment"]?: 0;$jijin_monthlyPayment = $repayment["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;if ($fundLoanPeriod > $commercialLoanPeriod) {$arr_ti = $fundRepayments;$arr_ti_duan = $commercialRepayments;}$newArray = [];foreach ($arr_ti as $is => $repayment) {if ($fundLoanPeriod < $commercialLoanPeriod) {$shangye_monthlyPayment = $repayment["monthlyPayment"] ?: 0;$jijin_monthlyPayment = $arr_ti_duan[$is]["monthlyPayment"] ?: 0;} else {$shangye_monthlyPayment = $arr_ti_duan[$is]["monthlyPayment"]?: 0;$jijin_monthlyPayment = $repayment["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;
}

四、可实现效果

相关文章:

PHP 之房贷计算器、组合贷

一、等额本金 // &#xff08;等额本金&#xff09; //$loanAmount>贷款金额 //$loanPeriod>贷款年限 //$interestRate>贷款利息 function calculateEqualPrincipalPayment($loanAmount, $loanPeriod, $interestRate) {$monthlyPrincipal $loanAmount / ($loanPerio…...

解决Vue+Element UI使用表单rules国际化时From表单验证信息不能实时更新

说明&#xff1a;该篇博客是博主一字一码编写的&#xff0c;实属不易&#xff0c;请尊重原创&#xff0c;谢谢大家&#xff01; 博主在工作之余开始进行自动化测试平台的开发&#xff0c;虽然已经996一个月了但是还是在使劲挤时间做这件事情&#xff0c;目前平台使用前端框架vu…...

友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕

屏幕介绍 本文以中景园1.69寸LCD&#xff0c;驱动芯片ST7789V2该款屏幕示例&#xff0c;屏幕的分辨率为240*280 屏幕引脚说明 NanoPi NEO IO介绍 屏幕与板子的IO连接关系 屏幕NanoPi NEOGNDGNDVCC3.3VSCLPC2SDAPC0RESPG11DCPA1CSPC3BLKPA0 下载交叉编译器和linux内核源码并按教…...

MFC第三十天 通过CToolBar类开发文字工具栏和工具箱、GDI+边框填充以及基本图形的绘制方法、图形绘制过程的反色线模型和实色模型

文章目录 CControlBar通过CToolBar类开发文字工具栏和工具箱CMainFrame.hCAppCMainFrm.cppCMainView.hCMainView.cppCEllipse.hCEllipse.cppCLine.hCLine.cppCRRect .hCRRect .cpp CControlBar class AFX_NOVTABLE CControlBar : public CWnd{DECLARE_DYNAMIC(CControlBar)pro…...

Android Https

本质&#xff1a;在客户端和服务端使用非对称加密协商出一套对称密钥&#xff0c;每次发送数据前加密&#xff0c;收到后解密&#xff0c;达到加密传输 http ssl 在http之下增加了安全层&#xff0c;用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…...

Games101学习笔记2

参考博客&#xff1a;GAMES101 梳理 / 个人向图形学笔记_games101笔记_river_of_sebajun的博客-CSDN博客 lecture 05 Rasterization 1(Triangles) 光栅化 把东西画在屏幕上的过程就是光栅化的过程 视口变换 为什么模型用三角形&#xff1f; 最基本的几何平面&#xff1b;保…...

java字符串String类的常用方法

java字符串String类的常用方法 字符串的创建&#xff1a; (1)定义字符串直接赋值&#xff0c;在字符串池中开辟空间() String str1“Hello”;//在字符串池中写入字符串"hello" String str2“Hello”;//直接引用字符串池中的"Hello" System.out.println(s…...

自动化测试如何解决chrome自动更新问题

问题 调试好的自动化测试脚本&#xff0c;有时候总是在第一天或过几天就不好使了。产品并未进行功能逻辑&#xff0c;ui修改&#xff0c;一切还和调试自动化脚本的时候保持一致。运行自动化测试脚本时&#xff0c;控制台总是会在driver webdriver.Chrome()这一行报错。 问题…...

闲鱼卖货:新手容易踩坑的7个地方。赶紧看看有没有中招?

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 这是我以前的一个学生收到的第一个非法通知。他告诉我&#xff0c;他当时很害怕&#xff0c;…...

PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理

PowerShell 获取某目录下所有的文件、文件夹&#xff0c;同时对获取到的文件路径字符串进行替换处理 前言&#xff1a; 为了将Windows系统下的Java编译文件与linux服务器上的文件进行比较&#xff0c;故进行此文件路径的获取及路径处理。 在只有文件路径 而没有实际文件的情况下…...

JUC并发编程之线程锁(一)

目录 1.ReentrantLock(互斥锁) 2.ReentRantReaderWriterLock&#xff08;互斥读写锁&#xff09; 3.StampedLock&#xff08;无障碍锁&#xff09; 4.Condition&#xff08;自定义锁&#xff09; 5.LockSupport 问题引出&#xff1a; 由于传统的线程控制需要用到同步机制Sy…...

Android AlertDialog标题居中

网上很多做法都是使用setCustomTitle方法实现的&#xff0c;我偏不&#xff0c;因为我已经找到了标题的textView了&#xff1a; 在show了之后可以拿到标题&#xff08;注意一定是show之后才能拿得到&#xff0c;create之后拿也是空的&#xff09;&#xff1a; TextView title…...

k8s界面化平台dashboard、kubesphere、Rancher对比

k8s集群管理dashboard有很多&#xff0c;比如kuboard、官方发dashboard、kubesphere、Rancher等等。 Dashboard、KubeSphere 和 Rancher 都是流行的 Kubernetes 管理和操作界面。它们都提供了图形化的用户界面&#xff0c;以简化对 Kubernetes 集群的管理和监控。每个工具都有其…...

【字符串左旋】

字符串左旋 1.题目要求 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 2.解法&#xff1a; 设计循环使其可以旋1次&#xff0c;然后让他执行n次是一个最简单的思路&#xff1a; 函数实现&#xf…...

Docker Dirtypipe(CVE-2022-0847)漏洞复现与分析容器逃逸

安装环境 ./metarget cnv install cve-2022-0847 --verbose 原理 同脏牛&#xff0c;通过写只读内存&#xff0c;对映射的内存做篡改 EXP docker run --rm -it -v $(pwd):/exp --cap-addCAP_DAC_READ_SEARCH ubuntu如果提示 Unknown capability to add: "CAP_CAP_DAC_RE…...

python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

项目介绍 接口自动化测试项目2.0 软件架构 本框架主要是基于 Python unittest ddt HTMLTestRunner log excel mysql 企业微信通知 Jenkins 实现的接口自动化框架。 前言 公司突然要求你做自动化&#xff0c;但是没有代码基础不知道怎么做&#xff1f;或者有自动化…...

Vue.js2+Cesium1.103.0 九、淹没分析效果

Vue.js2Cesium1.103.0 九、淹没分析效果 Demo <template><divid"cesium-container"style"width: 100%; height: 100%;"><spanid"button"style"position: absolute; right: 50px; top: 50px; z-index: 999; font-size: 24px…...

SpringBoot案例-部门管理-新增

根据页面原型&#xff0c;明确需求 页面原型 需求 阅读接口文档 接口文档链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 前端在输入要新增的部门名称后&#xff0c;会以JSON格式将数据传入至后端&#xf…...

微信小程序中背景图片如何占满整个屏幕,拉伸

不变形 1. 在页面的wxss文件中&#xff0c;设置背景图片的样式&#xff1a; page{background-image: url(图片路径);background-size: 100% 100%;background-repeat: no-repeat; }2. 在页面的json文件中&#xff0c;设置背景图片的样式&#xff1a; {"backgroundTextStyl…...

Java并发编程(四)线程同步 中 [AQS/Lock]

概述 Java中可以通过加锁&#xff0c;来保证多个线程访问某一个公共资源时&#xff0c;资源的访问安全性。Java提出了两种方式来加锁 第一种是我们上文提到的通过关键字synchronized加锁&#xff0c;synchronized底层托管给JVM执行的&#xff0c;并且在java 1.6 以后做了很多…...

阿里Java面试速成指南,程序员2026突击必备!

2026已经过半了&#xff0c;但是大家就业压力却没有缓解多少。很多粉丝后台留言&#xff0c;Java程序员面临的竞争太激烈了……我自己也有实感&#xff0c;多年身处一线互联网公司&#xff0c;虽没有直面过求职跳槽的残酷&#xff0c;但经常担任技术面试考官&#xff0c;对程序…...

【仅限SRE/平台工程师】:Docker集群内核级调试——从dmesg异常到cgroup OOM killer触发链的完整溯源路径(含perf trace实操录屏要点)

第一章&#xff1a;Docker集群内核级调试——从dmesg异常到cgroup OOM killer触发链的完整溯源路径&#xff08;含perf trace实操录屏要点&#xff09;当Docker集群中突发容器静默退出且无应用层日志时&#xff0c;需立即切入内核视角定位根本原因。典型线索始于 dmesg -T | gr…...

STM32F103用CubeMX实现ADC欠采样:用800Hz采样率捕获1kHz正弦波(附工程源码)

STM32F103实战&#xff1a;用CubeMX配置ADC欠采样捕获1kHz正弦波 在嵌入式系统开发中&#xff0c;ADC采样是获取模拟信号的关键技术。传统采样理论告诉我们&#xff0c;采样频率必须至少是信号最高频率的两倍&#xff08;奈奎斯特采样定理&#xff09;&#xff0c;但欠采样技术…...

保姆级教程:在Ubuntu 20.04上为ARM开发板交叉编译GStreamer 1.14.0(含所有依赖库)

ARM嵌入式开发实战&#xff1a;Ubuntu 20.04下GStreamer 1.14.0全依赖链交叉编译指南 当我们需要在资源受限的ARM开发板上实现高效多媒体处理时&#xff0c;GStreamer往往是首选框架。但将其成功移植到嵌入式平台&#xff0c;需要穿越复杂的依赖迷宫。本文将手把手带你完成从零…...

ChemCrow实战指南:用AI大模型解决复杂化学问题的终极方案

ChemCrow实战指南&#xff1a;用AI大模型解决复杂化学问题的终极方案 【免费下载链接】chemcrow-public Chemcrow 项目地址: https://gitcode.com/gh_mirrors/ch/chemcrow-public 你是否曾为复杂的化学计算感到头疼&#xff1f;需要计算分子量、预测反应产物&#xff0c…...

解锁高效办公新体验:探索QuickLook OfficeViewer-Native的智能文档预览方案

解锁高效办公新体验&#xff1a;探索QuickLook OfficeViewer-Native的智能文档预览方案 【免费下载链接】QuickLook.Plugin.OfficeViewer-Native View Word, Excel, and PowerPoint files with MS Office and WPS Office components. 项目地址: https://gitcode.com/gh_mirro…...

Boss-Key智能窗口管理解决方案:一键隐藏保护你的隐私与效率

Boss-Key智能窗口管理解决方案&#xff1a;一键隐藏保护你的隐私与效率 【免费下载链接】Boss-Key 老板来了&#xff1f;快用Boss-Key老板键一键隐藏静音当前窗口&#xff01;上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 你是否曾因突然的检…...

保研面试避坑指南:为什么我刷了两个月408和OJ,导师却只问我的大创项目?

保研面试的认知突围&#xff1a;为什么导师更关注你的项目而非专业课&#xff1f; 每年保研季&#xff0c;总有一批计算机专业的学生陷入同样的困境——他们刷遍了408四门专业课的习题集&#xff0c;在LeetCode上解决了上百道算法题&#xff0c;却在面试现场被导师连续追问一个…...

终极指南:免费解锁群晖NAS人脸识别功能,让旧设备焕发新生

终极指南&#xff1a;免费解锁群晖NAS人脸识别功能&#xff0c;让旧设备焕发新生 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 还在为群晖相册无法…...

LeagueAkari:英雄联盟客户端全能工具箱,5大核心功能提升游戏效率

LeagueAkari&#xff1a;英雄联盟客户端全能工具箱&#xff0c;5大核心功能提升游戏效率 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Leagu…...