//This class checks a date to see if it is an actual date in the common era. It accounts for leap //years and the switch in 1752 from the Julian to the Gregorian calender. public class MSDate { // Data fields int year; int month; int day; // Create a new date given input data for all data fields. public MSDate( int year, int month, int day ) { setYear( year ); setMonth( month ); setDay( day ); } // declare constant (static final variable) public static final int JANUARY = 1; public static final int FEBRUARY = 2; public static final int MARCH = 3; public static final int APRIL = 4; public static final int MAY = 5; public static final int JUNE = 6; public static final int JULY = 7; public static final int AUGUST = 8; public static final int SEPTEMBER = 9; public static final int OCTOBER = 10; public static final int NOVEMBER = 11; public static final int DECEMBER = 12; // Part of a method that tells you whether // a date is legal. returns true or false. public boolean islegalDate() { switch( month ) { case SEPTEMBER: if ( islegalDay1752() ) { return true; } else { return false; } case APRIL: case JUNE: case NOVEMBER: if ( ( day > 0 ) && ( day <= 30 ) ) { return true; } else { return false; } case FEBRUARY: // February has 29 days if ( ( isLeapYear() ) && ( day > 0 ) && ( day <= 29 ) ) { return true; } else if ( ( day > 0 ) && ( day <= 28 ) ) { return true; } break; default: if ( ( day > 0 ) && ( day <= 31 ) ) { return true; } else { return false; } } } public boolean islegalDay1752() { if ( (year == 1752) && (day >= 3 || day <= 3) ) { return false; } else if (year == 1752) { return true; } } public boolean isLeapYear() { if ( (year >= 1) && (year <= 1752) && (year % 4 == 0) ) return true; else if ( (year > 1752) && (year % 4 == 0) && (year % 400 == 0)) return true; return false; // return false by default. } // "get" methods for getting each data field public int getYear() { return year; } public int getMonth() { return month; } public int getDay() { return day; } // "set" methods for setting the value of each datafield. public void setYear( int y ) { year = y; } public void setMonth( int m ) { month = m; } public void setDay( int d ) { day = d; } // Print a date. public String toString() { return( year + " - " + month + " - " + day ); } }