PHP:计算月份和利率。这个解决方案是否正确它确实有效

时间:2014-04-05 21:40:04

标签: php

我想计算自X1日期到X2日期已经过了多少个月,并计算每月给定利率需要支付的金额。

脚本应该:获取债务(资本)的金额,债务发生的月份和年份,直到它应该计算。不是白天,只是一个月和一年。 输出应该是利息产生的总和,以及两个日期之间的总月份。

我有这些初始变量:

$tMonth = $_POST['tmes'];
$tYear = $_POST['tanio'];
$interes = $_POST['interes'];
$fMonth = $_POST['fmes'];
$fYear = $_POST['fanio'];
$capital = $_POST['capital'];

这就是我所做的:

if($_SERVER['REQUEST_METHOD']=='POST') {
    //I try and obtain how many months do I have between the two months
    $mesesEnAnios = (($tYear - $fYear) -1) * 12;
    $mesesScattered = (12 - $fMonth) + $tMonth;
    $mesesTotales = $mesesEnAnios + $mesesScattered;

    //Then I do calculate the interest I'll have to pay
    $totalCapital = $capital * ($interes * $mesesTotales) / 100;

    echo 'Son $'.$totalCapital.' en '.$mesesTotales.' meses.';
...

我已经尝试过这个脚本,但它确实有用。但我不太了解PHP(也不是数学),我不知道这是否会一直有效。

我在这里研究了other solutions,但我觉得我的一点容易 - 至少我明白了:) - 也许是因为它不正确?

1 个答案:

答案 0 :(得分:1)

不,这是错误的。

$mesesEnAnios = (($tYear - $fYear) -1) * 12;

例如:(2013 - 2012 - 1)= 0

0 * 12 = 0,而它明显为12。

然后你做

$mesesScattered = (12 - $fMonth) + $tMonth;

所以,假设我们有05-2013(月 - 年)和05-2012。结果应该是:12个月。让我们假设您修复了我指出的第一行,我们从中获得了12个月。在你的第二行,你得到12 - 5,即7。结果7 + 12 = 19 ..这显然是错误的。

为了方便起见,生病只是给你代码..

$months = (($tYear - $fYear ) * 12) + ($tMonth- $fMonth);

您首先检查是否有额外的年份,并在我们拥有的12个月内执行此金额* 12。 0年给0个月,1年给12个月等。之后我们检查月份。如果第一个值是8个月而第二个值是6个月,我们总共有2个月,并在我们从年度计算得到的值之上加上这个值。

这是月份部分,因为我不知道计算,因此我无法帮助你。假设您在数学和PHP方面有0经验(就像您说的那样),我建议您手动计算它,并将其与脚本中的结果进行比较。