// Implement any legitimate calendar date later than 12/31/1752, or else an // "illegal date' of the form 0/0/0. An attempt to use a constructor // to implement a date that is not a legitimate calendar date will // result in the date 0/0/0. public interface DateInterface { int getMonth(); // return date's month (0-12) int getDay(); // return date's day (0-12) int getYear(); // return date's year (>= 1753) // return number of days from date to di2, which is negative if // di2 is earlier, zero if they are the same date, and positive if di2 // is later. Throws an exception if the date is 0/0/0. int daysUntil(DateInterface di2); // Return day of week of the date as a string from // {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", // "Saturday"}. Throws an exception if the date is 0/0/0. String dayOfWeek(); // Return true if the date is a legitimate date (not 0/0/0) boolean isLegal(); // Return a string that represents the date in the form m/d/y. // Throws an exception if the date is 0/0/0 String toString(); // In addition, the class should have a default constructor, which // produces 0/0/0. It should have a constructor that has int month, // int day, int year parameters and constructs an object // with that month, day and year if they are legal, or else 0/0/0 if // they aren't. It should have a constructor that takes as a parameter // another DateInterface object and creates an object with the same // month, day, and year. }