Assignment 1:

	1. Create the java TimeType class (discussed in class & Chapter 8), 
 with three private integer data fields named hours, minutes, 
 and seconds, and implement the following public methods:

 TimeType() 
 no argument contructor. Sets all private data to 0.
 TimeType(int, int, int)
 contructor function. Set the private data according to the 
 three parameters. The first paramter represents hours, the 
 second minutes, and the third seconds. If any of the 
 parameters are invalid, set all private data to 0.
 TimeType(TimeType)
 contructor function. Initializes the private data to the 
 values stored in the TimeType parameter
 String toString()
 Returns the time stored in the object in the format 
 HH:MM:SS AM/PM
 boolean Set(int,int,int)
 Sets the time in the object according to the three 
 parameters. The first paramter represents hours, the 
 second minutes, and the third seconds. If any of the 
 parameters are invalid, does nothing and 
 returns false. Otherwise, set the private 
 data according to the three parameters and returns true.
 void Increase()
 Increases the time in the object by 1 SECOND
 void Decrease()
 Decreases the time in the object by 1 SECOND

	2. After you have created and compiled the TimeType class, create a 
 client Java application to test the TimeType class. This application, 
 named TestTime, should do the following and display its results 
 using a Scanner object:

 - Create a TimeType object called time1 using the default 
 contructor.
 - Create a TimeType object called time2 initialized to 23 hours, 
 59 minutes, and 58 seconds
 - Create a TimeType object called time3 initialized with the 
 values from the time2 object.
 - Write the values of time1, time2, and time3 on separate lines.
 - Attempt to set the time in time1 to 25 hours, 0 minutes, and 0 
 seconds. If successful, display the time in time1 otherwise 
 display the message "Invalid Time".
 - Create a loop that will increase and write the time in time2 10 
 times.
 - Create a loop that will decrease and write the time in time2 10 
 times.

As usual, include general comments, comment each variable and method, and format 
your code neatly.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Start Assignment 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Assignment: Create a new DateAndTime class that inherits from your TimeType class and adds the following three private integer instance variables: month, day, and year (and two arrays - see Notes below). Your class should implement the following methods: 1. DateAndTime() a no-argument constructor that sets the date to 01/01/1980 and the hours, minutes and seconds to 0. 2. boolean setDate(int m, int d, int y) If the year and month are valid, and the day is valid for the given month, set the month, day, and year according to the parameters supplied and return true. If any of the parameters are invalid, this method should do nothing and return false. 3. void increaseDay() increases the day by 1. Adjusts the month and year if necessary. 4. void decreaseDay() decreases the day by 1. Adjusts the month and year if necessary. 5. String toString() prints the date in the format Monthname day, year HH:MM:SS AM/PM 6. boolean isEqual(Date d) return true if the Date object calling the method has the same values as the Date object passed as a paramater, otherwise return false. 7. boolean leapYear(int yr) returns true if the parameter yr is a leap year, otherwise returns false. A leap year occurs in years whose last two digits are evenly divisible by four, except for centenary years not divisible by 400 8. void increaseSecond() increases the time by one second. Adjusts the date if necessary 9. void decreaseSecond() decreases the time by one second. Adjusts the date if necessary Notes: Assume the original TimeType class from assignment #4 contains 3 additional methods: getSeconds(), getMinutes(), and getHours(). Each of these methods return the respective private instance variable. These methods are necessary to implement increaseSecond() and decreaseSecond(). A complete working copy of the TimeType class is available in the class folder/home2/classes/csi205/TimeType.class In addition to the month, day, and year private instance variables, you should create two one dimensional private instance variable arrays for the purpose of printing the month names, and for validating the number of days in each month. The first static final array of 12 String elements should hold the names of each month and should be referenced by the toString() method to return the full month name. The second array of 12 int elements should be referenced to determine if the given day is valid for the current month. The days in each month are: Jan 31, Feb 28, Mar 31, Apr 30, May 31 Jun 30, Jul 31, Aug 31, Sep 30, Oct 31, Nov 30, Dec 31. You should use the leapYear() method to determine if Feb. contains 28 or 29 days. You should create your own test client to test the implementation of your DateAndTime class. As usual, format your code neatly. You should comment each of your variables and place comments before EACH method explaining its purpose.