我想计算自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(也不是数学),我不知道这是否会一直有效。
答案 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经验(就像您说的那样),我建议您手动计算它,并将其与脚本中的结果进行比较。