2014-04-05 55 views
-1

我想計算從X1日期到X2日期已經過了多少個月,並計算在給定的每月利率下需要支付多少錢。PHP:計算月份和利率。該解決方案是否正確?它確實有效

該腳本應該:獲得債務(資本)的金額,債務起源的月份和年份,直到它應該得到計算。不是一天,只是一個月和一年。 產出應該是利息產生的總額,以及這兩個日期之間的總月份。

我有這些初始變量:

$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(不算數學)知之甚少,我不知道這是否會一直有效。

我已經研究過othersolutions在SO這裏,但我認爲我有點容易 - 至少我理解它:) - 也許這是因爲它不正確?

+2

算法是否正確取決於它是否按照你的意圖進行。如果你不知道預期的結果,那麼很難確定它是否正確!你在計算普通還是複利? – halfer

+1

(Downvoters:我已經upvoted,因爲這個問題很清楚,功能代碼和以前的努力。我們不能要求所有問題的專家理解!) – halfer

+0

感謝您的upvote Halfer。其實我真的很想玩規則。更重要的是,我認爲如果這是正確的,可以幫助其他人。無論如何,我已經編輯了一個問題,說明預期的輸入/輸出。更難以用英文來解釋:) – Rosamunda

回答

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方面沒有經驗(如你所說),我會建議手動計算它,並將其與腳本的結果進行比較。

相關問題