ricardokovalski/installments-calculator

计算分期付款利息的库。

v1.0.2 2021-08-12 00:15 UTC

This package is auto-updated.

Last update: 2024-09-06 19:24:45 UTC


README

这是一个用于计算分期付款利息的PHP库。

Source Code PHP Programming Language Source Code Author Read License

关于

ricardokovalski/installments-calculator 是一个用于计算分期付款利息的PHP库。

安装

使用 Composer 将此包安装为依赖项。

composer require ricardokovalski/installments-calculator

基本使用

InstallmentCalculationConfig

要获取一个包含计算后的分期付款的集合,我们首先需要实例化一个 InstallmentCalculationConfig 对象。此对象在其构造函数中需要一个利息类型。

使用 InterestCalculation 类,我们可以实例化任何类型的利息,即 Financial、Compound 和 Simple。

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);

在 InstallmentCalculationConfig 对象中,我们可以修改一些默认配置,例如

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);

$interestCompound = InterestCalculation::Compound(1.99);

$installmentCalculationConfig->resetInterest($interestCompound);

在上面的例子中,我们将利息类型重置为 Compound,而最初 InstallmentCalculationConfig 是以 Financial 类型实例化的。

除了重置利息类型,我们还可以定义最大分期数。默认情况下,最大分期数为 12。

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);
$installmentCalculationConfig->resetNumberMaxInstallments(6);

在上面的例子中,我们将最大分期数重置为 6。

我们还有的其他选项是限制分期付款在最小值以上,如果配置了限制,我们可以定义限制值。默认情况下,该限制已启用,值为 5.00。

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);
$installmentCalculationConfig->appendLimitValueInstallment(5.00);

在上面的例子中,我们将限制值增加了 5.00,也就是说,现在分期付款将计算到最后一期不低于 10.00。如果不想设置此限制,只需禁用即可。

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);
$installmentCalculationConfig->resetLimitInstallments(false);

InstallmentCalculation

获取一个计算后的分期付款集合。

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);
$installmentCalculationConfig->resetLimitValueInstallment(10.00);

$installmentCalculation = new InstallmentCalculation($installmentCalculationConfig);
$installmentCalculation->appendTotalPurchase(343.90);
$installmentCalculation->calculate();

$collection = $installmentCalculation->getCollection();

格式化器

MonetaryFormatterConfig

use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatterConfig;
use RicardoKovalski\InstallmentsCalculator\Enums\IsoCodes; 
use RicardoKovalski\InstallmentsCalculator\Enums\Locale;

$formatterConfig = MonetaryFormatterConfig::BRL(Locale::PT_BR);

$formatterConfig->resetLocale(Locale::EN_US)
    ->resetCurrencyIsoCode(IsoCodes::USD)
    ->resetFractionDigits(3);

MonetaryFormatter

use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatter;
use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatterConfig;
use RicardoKovalski\InstallmentsCalculator\Enums\Locale;

$formatterConfig = MonetaryFormatterConfig::BRL(Locale::PT_BR);

$decimalFormatter = MonetaryFormatter::toDecimal($formatterConfig);
$intlCurrencyFormatter = MonetaryFormatter::toIntlCurrency($formatterConfig);
$intlDecimalFormatter = MonetaryFormatter::toIntlDecimal($formatterConfig);

完整示例

use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation;
use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatter;
use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatterConfig;
use RicardoKovalski\InstallmentsCalculator\Enums\Locale;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculation;
use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig;

$interest = InterestCalculation::Financial(2.99);

$installmentCalculationConfig = new InstallmentCalculationConfig($interest);
$installmentCalculationConfig->resetLimitValueInstallment(10.00);

$installmentCalculation = new InstallmentCalculation($installmentCalculationConfig);
$installmentCalculation->appendTotalPurchase(343.90);
$installmentCalculation->calculate();

$collection = $installmentCalculation->getCollection();

$formatterConfig = MonetaryFormatterConfig::BRL(Locale::PT_BR);
$intlCurrencyFormatter = MonetaryFormatter::toIntlCurrency($formatterConfig);

foreach ($collection as $installment) {
    $intlCurrencyFormatter->format($installment->getValueInstallment());
}

版权和许可证

ricardokovalski/installments-calculator 库版权 © Ricardo Kovalski,并根据 MIT 许可协议(MIT)授权使用。请参阅 LICENSE 获取更多信息。