lib/financial_maths.rb in financial_maths-0.0.10 vs lib/financial_maths.rb in financial_maths-0.0.11
- old
+ new
@@ -5,14 +5,19 @@
def due_variable_payment_amortization(periods, amount, rate, payment)
result = []
result << {:period=> 0, :monthly_payment => nil, :interest => nil, :payment => nil, :balance => amount}
for i in 1..periods
- interest = amount * rate
- month_payment = payment + interest
- amount -= payment
- #date += 1
+ if i == periods
+ interest = month_payment * rate
+ month_payment = payment + interest
+ amount -= payment
+ else
+ interest = amount * rate
+ month_payment = payment + interest
+ amount -= payment
+ end
result << {:period=> i,
:payment => month_payment,
:interest => interest,
:monthly_payment => payment,
:balance => amount}
@@ -23,14 +28,20 @@
def anticipated_variable_payment_amortization(periods, amount, rate, payment)
result = []
#result << {:period=> 0, :monthly_payment => nil, :interest => nil, :payment => nil, :balance => amount}
for i in 0..periods-1
- interest = amount * rate
- month_payment = payment + interest
- amount -= payment
- #date += 1
+ if i == periods
+ interest = month_payment * rate
+ month_payment = payment + interest
+ amount -= payment
+ else
+ interest = amount * rate
+ month_payment = payment + interest
+ amount -= payment
+ end
+
result << {:period=> i,
:payment => month_payment,
:interest => interest,
:monthly_payment => payment,
:balance => amount}
@@ -42,13 +53,19 @@
def due_fixed_payment_amortization(periods, amount, rate, payment)
result = []
result << {:period=> 0, :monthly_payment => nil, :interest => nil, :payment => nil, :balance => amount}
for i in 1..periods
- interest = amount * rate
- month_payment = payment - interest
- amount -= month_payment
- #date += 1
+ if i == periods
+ interest = month_payment * rate
+ month_payment = payment - interest
+ amount -= payment
+ else
+ interest = amount * rate
+ month_payment = payment - interest
+ amount -= payment
+ end
+
result << {:period=> i,
:payment => payment,
:interest => interest,
:monthly_payment => month_payment,
:balance => amount}