Task#1: Define the Date and DateTest classes by doing the followings. Run your code.
1. In Date class,
a. declare three instance variables: year, month, and day
b. define a constructor to initialize the variables properly
c. define toString method to return the date as a String like 26/3/2014
2. In DateTest class, define the main method. The main method should create a Date object and print it.
Task#2: Update the Date and DateTest classes by doing the followings. Run your code.
1. In Date class,
a. update the constructor to accept only valid values for year (> 0), month(1-12), and day(1-31). If any of the three values is not valid the value 1 should be assumed.
b. define a default constructor that initializes each of the three instance variables with the value 1.
c. the toString method should return the date with full month name, such as "March 26, 2014".
2. In the main method of the DateTest class, add code to create a date object with the default constructor, and another one with invalid values, and see the results.
Task#3: Do the followings in the DateTest class.
1. Add a static Date toDate(String str) method to the DateTest class. If the method is called with a string like "26/3/2014", it will create and return the corresponding date object. If the input string is not valid date, the method should return null. Hint: use the String.split("/") method to split the string in three parts and retrieve the day, month, and year. Or use the String.indexOf("/") and String.substring() methods to extract the three components of the date from the string.
2. In the main method, call the toDate method with a string-date of your choice and print the result.
Task#4: Update the Date and DateTest classes by doing the followings.
1. Implement the Comparable interface in the Date class. Provide implementation for the public int compareTo(Object obj) method. You may get help from Example#7.
2. In the main method of the DateTest class, add code for the followings.
a. Create an array of Date objects of size 4. Initialize the array by using a loop. In the loop, use the Scanner.nextLine() method to input a date as a string, convert it to a date by using the toDate() method, and assign the result to an element in the array. If the result of toDate() method is null, input the date again (Hint: consider using nested do-while loop for inputting a valid string-date).
b. Print the array of dates using a loop.
c. Use the Arrays.sort method to sort the array of dates.
d. Print the array of dates using a loop. The dates will now be sorted.
Task#5: Zip the folder of your project and submit through Blackboard.