module MonthlyPeriodicWithdrawals

Constants

VERSION

Public Class Methods

check_critical?(rate, withdrawal, principal) click to toggle source
# File lib/monthly_periodic_withdrawals.rb, line 10
def self.check_critical?(rate, withdrawal, principal)
        check = self.critical_withdrawal(rate, principal)
        if check > withdrawal
                false
        elsif check == withdrawal
                false
        else
                true
        end
end
critical_withdrawal(rate, principal) click to toggle source
# File lib/monthly_periodic_withdrawals.rb, line 6
def self.critical_withdrawal(rate, principal)
        (rate*principal).floor2(2)
end
time_to_deplete(rate, withdrawal, principal) click to toggle source
# File lib/monthly_periodic_withdrawals.rb, line 21
def self.time_to_deplete(rate, withdrawal, principal)


        if self.check_critical?(rate, withdrawal, principal)
                numerator = (-withdrawal/rate)/(principal-withdrawal/rate)
                numerator = Math.log10(numerator)
                denominator = Math.log10(1+rate)
                result = (numerator/denominator).ceil2
        else
                "This monthly withdrawal will not deplete the principal"
        end
end