/* * Written by : Bin Hong Lee * Last edited : 4/27/2016 */ class Book { //Declaring variable storages //Book title private String title; //Book ID private int id; //( AVAILABLE || RENTED || RESERVED || NOT AVAILABLE) private String status; //Book due date private int[] dueDate = new int[3]; //Constructor without book title public Book(int id) { this.id = id; this.status = "NOT AVAILABLE"; } //Constructor with book title public Book(String title, int id) { this.title = title; this.id = id; this.status = "AVAILABLE"; } //Getters and setters public String getTitle() { if (title!=null) { return title; } else { return "UNDEFINED"; } } public String getStatus() { return status; } public int getId() { return id; } public void setTitle(String title) { this.title = title; } //Call to rent book, return if renting is successful public boolean rent(int[] dueDate) { //Check if the book is available to be rented if(status != "AVAILABLE") { return false; } //Update the due date of the book this.dueDate = dueDate; //Update book status status = "RENTED"; return true; } //Call to return the book public void returned() { //Update book status status = "AVAILABLE"; } //Calculate the overdue fine public double overdueFine(int[] currentDay) { double fine; if(currentDay[0] > dueDate[0] || currentDay[1] > (dueDate[1] + 1)) { return 5; } else if(currentDay[1] > dueDate[1]) { fine = (double)(currentDay[2] + 30 - dueDate[2]) * 0.25; } else { fine = (double)(currentDay[2] - dueDate[2]) * 0.25; } if(fine > 5) { return 5; } else { return fine; } } }