Skip to content

Instantly share code, notes, and snippets.

@kaibrabo
Last active April 30, 2020 01:19
Show Gist options
  • Save kaibrabo/5057110a840d159501e10c90ba446ae2 to your computer and use it in GitHub Desktop.
Save kaibrabo/5057110a840d159501e10c90ba446ae2 to your computer and use it in GitHub Desktop.
public class Loan {
public static void main(String[] args) {
//TO DO
}
private double annualInterestRate;
private int numberOfYears;
private double loanAmount;
private java.util.Date loanDate;
/** Default constructor */
public Loan() {
this(2.5, 1, 1000);
}
/** Construct a loan with specified annual interest rate,
* number of years, and loan amount */
public Loan(double annualInterestRate, int numberOfYears, double loanAmount) {
if (annualInterestRate <= 0 || numberOfYears <= 0 || loanAmount <= 0) {
throw new IllegalArgumentException();
}
this.annualInterestRate = annualInterestRate;
this.numberOfYears = numberOfYears;
this.loanAmount = loanAmount;
loanDate = new java.util.Date();
}
/** Return annualInterestRate */
public double getAnnualInterestRate() {
return annualInterestRate;
}
/** Set a new annualInterestRate */
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
/** Return numberOfYears */
public int getNumberOfYears() {
return numberOfYears;
}
/** Set a new numberOfYears */
public void setNumberOfYears(int numberOfYears) {
this.numberOfYears = numberOfYears; }
/** Return loanAmount */
public double getLoanAmount() {
return loanAmount;
}
/** Set a new loanAmount */
public void setLoanAmount(double loanAmount) {
this.loanAmount = loanAmount; }
/** Find monthly payment */
public double getMonthlyPayment() {
double monthlyInterestRate = annualInterestRate / 1200;
double monthlyPayment = loanAmount * monthlyInterestRate / (1 - (1 / Math.pow(1 + monthlyInterestRate, numberOfYears * 12)));
return monthlyPayment; }
/** Find total payment */
public double getTotalPayment() {
double totalPayment = getMonthlyPayment() * numberOfYears * 12;
return totalPayment;
}
/** Return loan date */
public java.util.Date getLoanDate() {
return loanDate;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment