voovke/loan-payments-calculator

PHP支付计划计算库,使用各种策略和配置。

1.0 2017-09-07 12:53 UTC

This package is not auto-updated.

Last update: 2024-09-21 15:48:25 UTC


README

Build Status Code Coverage Scrutinizer Code Quality

LoanPaymentsCalculator 是一个面向程序员的 PHP 库。它旨在为各种输入和策略提供贷款还款计划。主要针对短期贷款开发,但也适用于其他贷款类型。

安装

您可以使用 Composer 下载并安装 LoanPaymentsCalculator 及其依赖项。

$ composer require vovke/loan-payments-calculator

标准

所有日期都符合 ISO 8601 标准,格式为 Y-m-d(YYYY-MM-DD)。

组件

DateProvider

我们使用它来提供符合特定规则的最接近日期,例如“月初”、“非银行假日”等。

dateProvider = new DateProvider(DateDetermineStrategy, HolidayProvider, shiftToFuture = true)
dateProvider->calculate( startDate )

HolidayProvider

一个用于检查特定日期是否为银行假日的接口。用于 period 中的 Schedule 计算。

Period

Period 类用于提供所需时间段的表示对象,包含特定期间的开始和结束日期以及两者之间的天数。

我们将其用作描述贷款期间的容器,其中 startDate 是贷款可能发放的日期,而 endDate 是最后还款日期,我们还在每个贷款的还款中使用期间,在这种情况下,endDate 是还款的还款日期。

Schedule

Schedule 类用于为给定的贷款 period、还款次数和还款频率生成 periods

$schedule = new Schedule($startDate, $numberOfPeriods, $dateProvider)

PaymentScheduleCalculator

PaymentScheduleCalculator 接口是不同支付计算方式实现的合约。

EqualPrincipalPaymentScheduleCalculator

EqualPrincipalPaymentScheduleCalculatorPaymentScheduleCalculator 接口的最简单实现,生成等额本金还款。

    $startDate = new \DateTime('1984-08-08');
    $principalAmount = 500;
    $numberOfPeriods = 5;
    $dailyInterestRate = 0.000383;
    $dateProvider = new DateProvider(new ExactDayOfMonthStrategy(), new WeekendsProvider(), true);
    $schedule = new Schedule($startDate, $numberOfPeriods, $dateProvider);
    $schedulePeriods = $schedule->generatePeriods();

    $paymentSchedule = new EqualPrincipalPaymentScheduleCalculator($schedulePeriods, $principalAmount, $dailyInterestRate);
    $payments = $paymentSchedule->calculateSchedule();

AnnuityPaymentScheduleCalculator

AnnuityPaymentScheduleCalculator 生成等额还款。

    ...
    $paymentSchedule = new AnnuityPaymentScheduleCalculator($schedulePeriods, $principalAmount, $dailyInterestRate);
    $payments = $paymentSchedule->calculateSchedule();

许可

MIT 许可证 的条款下发布。