lib/financial_maths.rb in financial_maths-0.0.11 vs lib/financial_maths.rb in financial_maths-0.0.12
- old
+ new
@@ -5,17 +5,15 @@
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
if i == periods
- interest = month_payment * rate
- month_payment = payment + interest
- amount -= payment
+ amount -= amount
else
- interest = amount * rate
- month_payment = payment + interest
amount -= payment
end
result << {:period=> i,
:payment => month_payment,
:interest => interest,
@@ -28,20 +26,19 @@
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
if i == periods
- interest = month_payment * rate
- month_payment = payment + interest
- amount -= payment
+ amount -= amount
else
- interest = amount * rate
- month_payment = payment + interest
amount -= payment
end
+ #date += 1
result << {:period=> i,
:payment => month_payment,
:interest => interest,
:monthly_payment => payment,
:balance => amount}
@@ -53,19 +50,18 @@
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
if i == periods
- interest = month_payment * rate
- month_payment = payment - interest
- amount -= payment
+ amount -= amount
else
- interest = amount * rate
- month_payment = payment - interest
- amount -= payment
+ amount -= month_payment
end
-
+
+ #date += 1
result << {:period=> i,
:payment => payment,
:interest => interest,
:monthly_payment => month_payment,
:balance => amount}