php 等额本息+等额本金生成公式

/**
 * 等额本息
 * 
 * @param month 贷款月数  total 贷款总额  start_time 开始时间  
 * 
 * @return arr  期数  本金 利息 总额  剩余还款总额  还款时间
 * */
function debx($month,$total,$start_time=0)
{
    $arr   = array();
    $dkm   = $month; //贷款月数,20年就是240个月
    $dkTotal = $total; //贷款总额
    $surplus = $total; //剩余还款金额
    $dknl  = 0.0515; //贷款年利率
    $emTotal = $dkTotal * $dknl / 12 * pow(1 + $dknl / 12, $dkm) / (pow(1 + $dknl / 12, $dkm) - 1); //每月还款金额
    $lxTotal = 0; //总利息
    for ($i = 0; $i < $dkm; $i++) {
      $lx   = $dkTotal * $dknl / 12;  //每月还款利息
      $em   = $emTotal - $lx; //每月还款本金
      $surplus = $surplus-$em;
      $surplus = $surplus<1?0:$surplus;
      //echo "第" . ($i + 1) . "期", " 本金:", $em, " 利息:" . $lx, " 总额:" . $emTotal, "<br />";
      $start_time = strtotime('+1 month',$start_time);
      $arr[] = array('issue'=>$i+1,'corpus'=>number_format($em,2),'interest'=>number_format($lx,2),'total'=>number_format($emTotal,2),'surplus'=>number_format($surplus,2),'time'=>date('Y-m-d H:i:s',$start_time)); 
      $dkTotal = $dkTotal - $em;
      $lxTotal = $lxTotal + $lx;
    }
    return $arr;
}
    
/**
 * 等额本金
 * 
 * @param month 贷款月数  total 贷款总额  start_time 开始时间  
 * 
 * @return arr  期数  本金 利息 总额  剩余还款总额  还款时间
 * */   
function debj($month,$total,$start_time)
{
    $arr   = array();
    $dkm   = $month; //贷款月数,20年就是240个月
    $dkTotal = $total; //贷款总额
    $surplus = $total; //剩余还款金额
    $dknl  = 0.0515; //贷款年利率
    $em   = $dkTotal / $dkm; //每个月还款本金
    $lxTotal = 0; //总利息
    for ($i = 0; $i < $dkm; $i++) {
      $lx   = $dkTotal * $dknl / 12; //每月还款利息
      $surplus = $surplus-$em;
      $surplus = $surplus<1?0:$surplus;
      //echo "第" . ($i + 1) . "期", " 本金:", number_format($em,2), " 利息:" . number_format($lx,2), " 总额:" .number_format(($em + $lx),2), "<br />";
      $start_time = strtotime('+1 month',$start_time);
      $arr[] = array('issue'=>$i+1,'corpus'=>number_format($em,2),'interest'=>number_format($lx,2),'total'=>number_format($emTotal,2),'surplus'=>number_format($surplus,2),'time'=>date('Y-m-d H:i:s',$start_time)); 
      $dkTotal -= $em;
      $lxTotal = $lxTotal + $lx;
    }
    return $arr;
    //echo "总利息:" . $lxTotal;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP - 小伙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值