Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:计算月份和利率。这个解决方案正确吗?它确实有效_Php - Fatal编程技术网

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

PHP:计算月份和利率。这个解决方案正确吗?它确实有效,php,Php,我想计算从一个X1日期到一个X2日期已经过去了多少个月,并计算在给定的月利率下我需要支付多少 脚本应:获取债务(资本)的金额,债务产生的月份和年份,直到计算债务为止。不是白天,只是月份和年份。 而产出应该是利息产生的总额,以及两个日期之间的总月数 我有这些初始变量: $tMonth = $_POST['tmes']; $tYear = $_POST['tanio']; $interes = $_POST['interes']; $fMonth = $_POST['fmes']; $fYear =

我想计算从一个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(或数学)了解不多,也不知道这是否会一直有效

我在这里已经研究过了,但我认为我的更容易一点——至少我能理解:)-也许是因为它不正确吧?

不,它是错的

$mesesEnAnios = (($tYear - $fYear) -1) * 12;
例如:(2013-2012-1)=0

0*12=0,而它明显是12

那你呢

$mesesScattered = (12 - $fMonth) + $tMonth;
所以,假设我们有2013年5月和2012年5月。结果应该是:12个月。假设你修复了我指出的第一行,我们有12个月的时间。在你的第二行,你得到12-5,也就是7。结果7+12=19。。这也是明显的错误

为了方便起见,我只给你代码

$months = (($tYear - $fYear ) * 12) + ($tMonth- $fMonth);
您首先检查是否有额外的年数,并在我们拥有的12个月内计算该金额*12。0年给0个月,1年给12个月等,然后我们检查月份。如果第一个值是8个月,第二个值是6个月,我们总共有2个月,将这个值加在我们从年份计算得到的值上


这是月份部分,另一部分我无法帮助您,因为我不知道计算方法。但是,假设您在数学和PHP方面没有经验(如您所说),我建议您手动计算它,并将其与脚本的结果进行比较

算法是否正确取决于它是否符合您的意图。如果您不知道预期的输出,那么很难确定它是否正确!你是想计算普通利息还是复利?(下行投票人:我之所以向上投票,是因为这个问题很清楚,有代码和事先的努力。我们不能要求专家理解所有问题!)谢谢你的向上投票人。事实上,我真的尽力遵守规则。更重要的是,我认为如果这是正确的,我可以帮助别人。。不管怎么说,我已经编辑了这个问题,说什么输入/输出是预期的。用英语解释更难:)也被否决了。这个问题没有什么错。