pqrs/phploan

计算贷款的每月还款额

dev-master 2018-02-13 18:33 UTC

This package is auto-updated.

Last update: 2024-09-22 06:35:55 UTC


README

提供一些函数来

  • 根据贷款本金、利率和还款次数计算每期还款金额。
  • 根据还款次数、利率和还款金额计算贷款本金。
  • 根据本金、利率和还款金额计算还款次数。

还提供了一个方法来返回贷款还款计划。

安装

composer require pqrs/phploan=dev-master

或者,直接在composer.json文件中添加依赖

"require": {
    "pqrs/phploan": "dev-master"
}

然后在php代码中添加

require_once __DIR__ . '/vendor/autoload.php';   // Autoload files using Composer autoload

use PHPLoan\Loan;

使用

Variables nomenclature

$P    Principal (loan amount)
$r    Annual interest rate
$n    Number of payments (months)
$A    Monthly payment amount

方法 calculateMonthlyPayment( $P, $r, $n )

根据贷款本金、利率和还款次数计算每期还款金额。

$loan = new Loan;

$result = $loan->calculateMonthlyPayment( 60000 , 9, 360 );
echo number_format($result, 2, ".", ",") . PHP_EOL;

// Prints 482.77

方法 calculatePrincipal( $n, $r, $A )

根据还款次数、利率和还款金额计算贷款本金。

$loan = new Loan;

$result = $loan->calculatePrincipal( 360, 9, 482.77357 );
echo number_format($result, 2, ".", ",") . PHP_EOL;

// Prints 60,000.00

方法 calculateNumPayments( $P, $r, $A )

根据本金、利率和还款金额计算还款次数。

$loan = new Loan;

$result = $loan->calculateNumPayments( 60000, 9, 482.77357 );
echo $result . PHP_EOL;

// Prints 360

方法 getSchedule( $P, $r, $n )

返回一个包含贷款还款计划的object。

$loan = new Loan;

$schedule = $loan->getSchedule( 60000, 9, 12 );

echo "<table>";

foreach ($schedule as $key) {
    echo "<tr>";
    echo "<td>" . $key->numpayment  . "</td>";
    echo "<td>" . $key->payment     . "</td>";
    echo "<td>" . $key->interest    . "</td>";
    echo "<td>" . $key->principal   . "</td>";
    echo "<td>" . $key->balance     . "</td>";
    echo "</tr>";
}

echo "</table>";

// Prints html table:
// 1   5,247.09    450.00  4,797.09    55,202.91
// 2   5,247.09    414.02  4,833.07    50,369.84
// 3   5,247.09    377.77  4,869.31    45,500.53
// 4   5,247.09    341.25  4,905.83    40,594.70
// 5   5,247.09    304.46  4,942.63    35,652.07
// 6   5,247.09    267.39  4,979.70    30,672.37
// 7   5,247.09    230.04  5,017.05    25,655.32
// 8   5,247.09    192.41  5,054.67    20,600.65
// 9   5,247.09    154.50  5,092.58    15,508.07
// 10  5,247.09    116.31  5,130.78    10,377.29
// 11  5,247.09    77.83   5,169.26    5,208.03
// 12  5,247.09    39.06   5,208.03    0.00

示例

您可以在测试文件夹中找到这些函数的一些用法。

先决条件

PHP > 5.6

未经测试,但如果您想在低于5.6的5.x PHP版本中使用phploan,可能只需更改Loan.php中的指数表达式即可。将**改为函数pow()

// In method calculateMonthlyPayment( $P , $r, $n )

    $A = $P * (( $i * pow((1 + $i), $n) ) / ( pow((1 + $i), $n) - 1 ));

// In method calculatePrincipal( $n, $r, $A )

    $P = $A * ( pow((1 + $i), $n) - 1 ) / ( $i * (pow((1 + $i), $n) ));

贡献

欢迎贡献!

致谢

版权所有 © 2018 Alvaro Piqueras - pqrs

许可

本项目采用MIT许可 - 有关详细信息,请参阅LICENSE文件。