init commit
This commit is contained in:
commit
73b7574190
26
README.md
Normal file
26
README.md
Normal file
@ -0,0 +1,26 @@
|
||||
# mortgage-calculator
|
||||
|
||||
Calculate mortgages in multiple ways
|
||||
|
||||
# Overview
|
||||
|
||||
The purpose of this program stems from my inability to find loan calculators
|
||||
that will let me put in what I want to pay per month to see how much loan
|
||||
I can afford.
|
||||
|
||||
Thus, this program will be able to calculate mortages in whichever way
|
||||
you feel fit.
|
||||
|
||||
fixme: Be more specific once program is created
|
||||
|
||||
# Useage
|
||||
|
||||
fixme: Useage examples
|
||||
|
||||
# Documentation
|
||||
|
||||
fixme: Write documentation
|
||||
|
||||
# License
|
||||
|
||||
fixme: Grab ICS
|
1
mortgage-calculator-test.asd
Normal file
1
mortgage-calculator-test.asd
Normal file
@ -0,0 +1 @@
|
||||
Unit tests
|
24
mortgage-calculator.asd
Normal file
24
mortgage-calculator.asd
Normal file
@ -0,0 +1,24 @@
|
||||
(defsystem mortgage-calculator
|
||||
:author "Joseph J. Green <logen@sudotask.com>"
|
||||
:maintainer "Joseph J. Green <logen@sudotask.com>"
|
||||
:license "ISC"
|
||||
:homepage "https://"
|
||||
:version "0.1"
|
||||
:components ((:module "src"
|
||||
:serial t
|
||||
:components
|
||||
((:file "mortgage-calculator"))))
|
||||
:description "Mortgage calculators"
|
||||
:long-description
|
||||
#.(uiop:read-file-string
|
||||
(uiop:subpathname *load-pathname* "README.md"))
|
||||
:in-order-to ((test-op (test-op my-project-test))))
|
||||
|
||||
#|(defsystem mortgage-calculator-test
|
||||
:author "Joseph J. Green <logen@sudotask.com>"
|
||||
:license "ISC"
|
||||
:depends-on (:mortgage-calculator)
|
||||
:components ((:module "t"
|
||||
:serial t
|
||||
:components
|
||||
((:file "mortgage-calculator"))))) |#
|
34
mortgage-calculator.lisp
Normal file
34
mortgage-calculator.lisp
Normal file
@ -0,0 +1,34 @@
|
||||
;;;; Mortgage Calculators
|
||||
|
||||
#|
|
||||
loan amount (p)
|
||||
interest rate (r)
|
||||
years (t)
|
||||
payments per year (n)
|
||||
loan type: fixed-rate
|
||||
|
||||
Payment = P x (r/n) * [1+(r/n)^n * t]/(1+r/n)^n *t - 1
|
||||
|
||||
or
|
||||
|
||||
P = payment
|
||||
PV = Present Value
|
||||
r = rate per period
|
||||
n = number of periods
|
||||
|
||||
P = (r(PV)) / (1-(1+r)^-n)
|
||||
|
||||
|#
|
||||
|
||||
(defun payments (loan-total rate number-of-payments)
|
||||
(/ (* rate loan-total)
|
||||
(- 1 (expt (+ 1 rate) (* number-of-payments -1)))))
|
||||
(defun monthly-payments(loan-total rate number-of-payments)
|
||||
"Number of payments in years"
|
||||
(payments loan-total (/ rate 12) (* number-of-payments 12)))
|
||||
(defun payment-total-per-year (loan-total rate number-of-payments)
|
||||
(* (payments loan-total (/ rate 12) (* number-of-payments 12)) 12))
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user