Write a Java class called Date that includes three fields year, month and day. T
ID: 3819696 • Letter: W
Question
Write a Java class called Date that includes three fields year, month and day. This class stores information about a single date (year, month and day). Your class should have constructor(s), accessors and mutators and it should implement the Comparable interface. Years take precedence over months, which take precedence over days. For example, Feb 19, 2016 comes after Nov 20, 2015.
The following class DateTest can be used to test the Date class that you wrote. It creates a list of the birthdays of the first 5 U.S. presidents in random order and puts them into sorted order. (Note: you can use Collections.sort() to sort your ArrayList after you implement the compareTo() method).
import java.util.*;
public class DateTest {
public static void main(String[] args) {
ArrayList<Date> dates = new ArrayList<Date>();
dates.add(newDate(4,13,1743)); //Jefferson
dates.add(newDate(2,22,1732)); //Washington
dates.add(newDate(3,16,1751)); //Madison
dates.add(new Date(10, 30, 1735)); // Adams
dates.add(newDate(4,28,1758)); //Monroe
System.out.println("birthdays = " + dates);
Collections.sort(dates);
System.out.println("birthdays = " + dates);
}
}
When you execute the following code it should print:
birthdays = [4/13/1743, 2/22/1732, 3/16/1751, 10/30/1735, 4/28/1758]
birthdays = [2/22/1732, 10/30/1735, 4/13/1743, 3/16/1751, 4/28/1758]
Explanation / Answer
DateTest.java
import java.util.*;
public class DateTest {
public static void main(String[] args) {
ArrayList<Date> dates = new ArrayList<Date>();
dates.add(new Date(4,13,1743)); //Jefferson
dates.add(new Date(2,22,1732)); //Washington
dates.add(new Date(3,16,1751)); //Madison
dates.add(new Date(10, 30, 1735)); // Adams
dates.add(new Date(4,28,1758)); //Monroe
System.out.println("birthdays = " + dates);
Collections.sort(dates);
System.out.println("birthdays = " + dates);
}
}
Date.java
public class Date implements Comparable<Date>{
private int day,year,month;
public Date(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int compareTo(Date o) {
return year-o.year;
}
public String toString() {
return day+"/"+ month+"/"+year;
}
}
Output:
birthdays = [4/13/1743, 2/22/1732, 3/16/1751, 10/30/1735, 4/28/1758]
birthdays = [2/22/1732, 10/30/1735, 4/13/1743, 3/16/1751, 4/28/1758]
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.