public class Date { // State of a Date object int day; int month; // between 1 and 12 int year; // from January 1st 1900 on // global variable static String[] monthInEnglish = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; //constructor public Date(int y, int m, int d) { //initialize constructor here // code here checkData(); } //constructor public Date(int m, int d) { // code here } // constructor public Date(int d) { // code here } //default constructor public Date() { // code here } //Check whether the date is correct public void checkData() { // array containing the number of days of each month int[] daysOfMonth = getDaysOfMonth(); // Use the above array to check whether the date is correct // Print an error message if the date is incorrect // code here } // returns true if the year is leap public boolean isLeapYear(int year) { // code here } //string representation of date public String toString() { // code here } //returns # days of a given month public int[] getDaysOfMonth() { int[] daysOfMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (isLeapYear(year)) daysOfMonth[1] = 29; return daysOfMonth; } //compares this date with other date public boolean precede(Date otherDate) { // code here } // public int daysPassedSince1Jan1900() { // code here } public int daysPassedThisYear() { // code here } }