`

P2P利息计算工具

阅读更多
/**
 * 计算器。
 *
 * <p>
 *     用于计算投资相关的积分,本金利息等。
 * </p>
 *
 * 
 */
public final class Calculator {

    /**
     * 计算一次性还款按天计息的利息。
     *
     * <p>
     *     OOBD=ONCE_OFF_BY_DAY,参照{@link RepaymentType#ONCE_OFF_BY_DAY}。
     * </p>
     *
     * @param amount        投资金额。
     * @param rateOfDay    项目(天)利率。
     * @param days          项目期限(天数)。
     * @return 利息值。
     */
    public static BigDecimal calculateInterestWithOOBDBy(BigDecimal amount, BigDecimal rateOfDay, int days) {
        return amount.multiply(rateOfDay).multiply(new BigDecimal(days)).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 计算按月还款的分期利息。
     *
     * @param amount        投资金额。
     * @param rateOfYear    项目年利率。
     * @param term          项目期限。
     * @param sequence      当前期数。
     * @return 利息值。
     */
    public static BigDecimal calculateInterestForMonthBy(BigDecimal amount, BigDecimal rateOfYear, int term, int sequence) {
        BigDecimal monthRate = getRateOfMonth(rateOfYear);
        BigDecimal pow1 = BigDecimal.valueOf(Math.pow(BigDecimal.ONE.add(monthRate).doubleValue(), term));
        BigDecimal pow2 = BigDecimal.valueOf(Math.pow(BigDecimal.ONE.add(monthRate).doubleValue(), sequence - 1));

        return amount.multiply(monthRate).multiply(pow1.subtract(pow2)).divide(pow1.subtract(BigDecimal.ONE), 2, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 计算按月还款的分期本金。
     *
     * @param amount        投资金额。
     * @param rateOfYear    项目年利率。
     * @param term          项目期限。
     * @return 利息值。
     */
    public static BigDecimal calculateCapitalForMonthBy(BigDecimal amount, BigDecimal rateOfYear, int term) {
        BigDecimal monthRate = getRateOfMonth(rateOfYear);
        BigDecimal pow = BigDecimal.valueOf(Math.pow(BigDecimal.ONE.add(monthRate).doubleValue(), term));

        return amount.multiply(monthRate).multiply(pow).divide(pow.subtract(BigDecimal.ONE), 2, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 计算借款手续费。
     *
     * @param repaymentType 还款方式。
     * @param limitCategory 额度类型。
     * @param subjectAmount 项目金额。
     * @param term          项目期限。
     * @return 借款手续费。
     */
    public static BigDecimal calculateCommissionChargeBy(int repaymentType, int limitCategory, BigDecimal subjectAmount, int term) {
        BigDecimal poundageAmount = BigDecimal.ZERO;
        if (repaymentType == RepaymentType.ONCE_OFF_BY_DAY.getType()) { //天标借款天数不足5天按5天计算。
            poundageAmount = subjectAmount.multiply(new BigDecimal(term <= 5 ? 5 : term)).divide(new BigDecimal("10000"), 2, BigDecimal.ROUND_HALF_EVEN);
        } else {
            BigDecimal loanRate = new BigDecimal("0.005");
            if (limitCategory == LimitCategory.NET_VALUE.getType()) {   //净值。
                loanRate = new BigDecimal("0.00175");
            } else if (limitCategory == LimitCategory.ASSETS_LIMIT.getType()) { // 资产标
                loanRate = new BigDecimal("0.0025");
            }

            poundageAmount = subjectAmount.multiply(new BigDecimal(term)).multiply(loanRate).setScale(2, BigDecimal.ROUND_HALF_EVEN);
        }
        return poundageAmount;
    }

    /**
     * 根据年化利率(百分比)获取月化利率,保留7位小数位。
     *
     * @param rateOfYear 年化利率(百分比)。
     * @return 月化利率。
     */
    public static BigDecimal getRateOfMonth(BigDecimal rateOfYear) {
        return rateOfYear.multiply(new BigDecimal("0.01")).divide(new BigDecimal("12"), 7, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 根据年化利率(百分比)获取月化利率,保留7位小数位。
     *
     * @param rateOfYear 年化利率(百分比)。
     * @return 月化利率。
     */
    public static BigDecimal getRateOfDay(BigDecimal rateOfYear) {
        return rateOfYear.multiply(new BigDecimal("0.01")).divide(new BigDecimal("365"), 7, BigDecimal.ROUND_HALF_EVEN);
    }
}

 

分享到:
评论

相关推荐

    网贷/P2p/贷款收益统计表

    "网贷/P2p/贷款收益统计表"是一个非常实用的工具,它能帮助投资者自动计算不同类型的还款方式下的投资收益,包括“先息后本”、“等额本息”以及“等额本金”等常见模式。 “先息后本”还款方式是指借款人每期只需...

    p2p网贷平台模板

    【标题】:“P2P网贷平台模板” 在互联网金融领域,P2P...综上所述,P2P网贷平台模板是互联网金融领域的重要工具,它整合了用户管理、资金流动、投资与贷款等核心功能,为构建高效、安全的网贷平台提供了一条捷径。

    绿麻雀p2p网贷系统

    4. **交易处理**:处理借款、还款、利息计算等金融交易,确保资金流的准确无误。 5. **风险管理**:提供风险评估工具,对借款人信用状况进行评估,帮助投资者做出决策。同时,系统还应具备风险预警机制,防止潜在的...

    基于BP神经网络的P2P网贷市场信用风险评估.pdf

    MATLAB作为强大的数值计算和科学计算工具,常用于实现神经网络的训练和仿真,验证模型的有效性、准确性和实用性。 通过对P2P网贷平台信用风险的评估,可以为投资者提供决策依据,降低投资风险,同时也可以帮助监管...

    P2P平台

    【文件名称】:“活期理财.xlsx”:这个文件可能包含了P2P平台上的活期理财产品相关的数据,例如产品收益率、投资期限、每日收益计算规则、历史回报率等。投资者可以通过分析这些数据来评估不同产品的风险和收益,...

    2018年高考政治热点题型和提分秘籍专题06投资理财的选择含解析.doc

    8. **投资工具的比较**:如例2中的P2P贷款与传统银行存款的对比,展示了不同投资工具的利率计算方式和风险差异,有助于学生理解投资工具的选择应综合考虑收益和安全。 通过以上的知识点,考生可以更好地应对高考中...

    企业数据分析案例-P2P信贷数据分析.zip

    在当今信息化社会,数据分析已成为企业决策不可或缺的工具,尤其是在金融领域,如P2P(peer-to-peer)信贷行业。P2P信贷是一种创新的金融服务模式,它通过互联网平台将投资者与借款者直接连接,省去了传统金融机构的...

    2019年高考政治热点题型和提分秘籍专题06投资理财的选择(教学案)(含解析).pdf

    计算时需要注意年利率、月利率和日利率的转换,以及复利的计算,即利息再投资产生新的利息。 4. **投资风险与收益的关系**:高风险通常伴随着高收益,如股票投资可能带来较高的收益,但也存在较大的风险。而债券、...

    P2P网贷应用创意封面插画素材.zip

    在P2P网贷应用中,插画可能用来解释复杂的金融概念,如风险分散、利率计算、信用评估等,使非专业用户也能理解并信任平台。 最后,“网贷应用封面”是指应用图标或者启动页面的设计,这是用户对应用的第一印象。好...

    notescript:NoteScript语言,用于描述P2P市场上的投资

    在NoteScript中,用户可以定义投资笔记(investment notes),这些笔记包含了投资的所有细节,如借款金额、利率、期限、还款计划等。通过编写NoteScript脚本,投资者能够定制自己的投资策略,比如设置自动投标规则,...

    基于KMV模型的互联网金融行业信用风险分析.pdf

    国内学者辛宪(2009)通过对比国内外P2P网贷平台,发现中国网贷平台在运营模式、利率设置、信息透明度以及风险控制等方面存在问题。赵沁乐(2017)将P2P行业的风险分为内部风险和外部风险两大类,其中内部风险主要与...

    互联网金融模式下小微企业研究-互联网电视-计算机.pdf

    - 第三方支付的普及,支付宝和微信支付已成为主流支付工具,广泛应用于各种交易场景,降低了交易成本。 - 融资渠道的创新,众筹和P2P网络贷款模式为企业,尤其是小微企业,提供了新的筹资途径。 3. 小微企业融资...

    互联网金融平台课件:第二讲 网络借贷参与主体分析.pdf

    - **投资人费用**:平台主要通过向投资人收取充值费、提现费、利息管理费、VIP费用等服务费来盈利。 - **借款人费用**:包括成交服务费(按信用等级差异定价)、借款手续费(按借款期限不同计费)、催收费用和罚息...

    JAVA上百实例源码以及开源项目源代码

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

    prosper贷款数据集.zip

    在当今大数据时代,数据分析已经成为各行各业不可或缺的工具,尤其在金融领域,通过对海量数据的深入挖掘,可以为决策提供有力支持。本次我们关注的是“Prosper贷款数据集”,这是一份用于数据分析的数据集,其中...

    120个编程项目构思1

    - P2P文件共享:理解P2P网络原理,实现文件分享功能。 - 端口扫描器:使用socket编程扫描端口状态。 - 邮件检查工具:涉及POP3或IMAP协议,实现邮件收发。 - 数据包嗅探器:使用libpcap库捕获网络流量。 - IP...

    互联网理财产品的风险及对策研究.doc

    随着利率市场化的推进,银行间协议存款收益持续下降,互联网理财产品的收益也会相应减少。例如,余额宝的7日年化收益率一度超过7%,但在2015年后持续下滑,直至目前不足2.5%。此外,传统银行也在积极推出自己的理财...

    2012年南京财经大学金融硕士(MF)金融学综合真题试卷.docx

    2. 扩大金融服务范围:金融创新引入了新的金融产品,满足了消费者多样化的需求,如互联网金融、众筹、P2P借贷等。 3. 增强市场流动性:新金融工具如期货、期权等为投资者提供了更多的交易选择,增加了市场的深度和...

    信息时代下企业融资的财务分析评价.pdf

    通过科学的财务分析,企业可以评估不同融资方式的风险和成本,例如债务融资可能导致的利息支出增加和财务杠杆效应,而股权融资可能会稀释原有股东的控制权。此外,融资策略还需要考虑市场环境、行业趋势以及政策法规...

Global site tag (gtag.js) - Google Analytics