ricardokovalski / installments-calculator
计算分期付款利息的库。
Requires
- php: >=5.6
- ext-json: *
- ricardokovalski/interest-calculation: v1.0.2
- ricardokovalski/money-formatter: v1.0.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-06 19:24:45 UTC
README
这是一个用于计算分期付款利息的PHP库。
关于
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 获取更多信息。