Hey all - yes, this is another thread asking for some homework help, but I've got a solid start, just looking for some fresh ideas. Anyways, the task is to create a java clock class and access/use it from a driver. I saw something similar on here, but not quite the same. On top of that, there are other stipulations:
5.)There should be constructors that allow the user to set the time as desired and a default constructor that sets the time at 00:00:00 (high midnight)
6. The user should be able to set a valid time using the 24-hour clock
7. The user should be able to print the time by referring to its identifier, i.e. System.out.println(myClock);
8. There should be methods to increment hours, minutes and seconds
9. There should be a method to test if two times are equal and one to test one time relative to another
10. There should be a method to make a copy of a Clock and a method to store a copy of a Clock in another Clock
So here's what I got:
public class Clock
{
private int hr; //store hours
private int min; //store minutes
private int sec; //store seconds
public Clock ()
{
setTime (0, 0, 0);
}
public Clock (int hours, int minutes, int seconds)
{
setTime (hours, minutes, seconds);
}
public void setTime (int hours, int minutes, int seconds)
{
if (0 <= hours && hours < 24)
hr = hours;
else
hr = 0;
if (0 <= minutes && minutes < 60)
min = minutes;
else
min = 0;
if (0 <= seconds && seconds < 60)
sec = seconds;
else
sec = 0;
}
//Method to return the hours
public int getHours ( )
{
return hr;
}
//Method to return the minutes
public int getMinutes ( )
{
return min;
}
//Method to return the seconds
public int getSeconds ( )
{
return sec;
}
public void printTime ( )
{
if (hr < 10)
System.out.print ("0");
System.out.print (hr + ":");
if (min < 10)
System.out.print ("0");
System.out.print (min + ":");
if (sec < 10)
System.out.print ("0");
System.out.print (sec);
}
//The time is incremented by one second
//If the before-increment time is 23:59:59, the time
//is reset to 00:00:00
public void incrementSeconds ( )
{
sec++;
if (sec > 59)
{
sec = 0;
incrementMinutes ( ); //increment minutes
}
}
///The time is incremented by one minute
//If the before-increment time is 23:59:53, the time
//is reset to 00:00:53
public void incrementMinutes ( )
{
min++;
if (min > 59)
{
min = 0;
incrementHours ( ); //increment hours
}
}
public void incrementHours ( )
{
hr++;
if (hr > 23)
hr = 0;
}
public boolean equals (Clock otherClock)
{
return (hr == otherClock.hr
&& min == otherClock.min
&& sec == otherClock.sec);
}
}
And the Driver so far is weak:
public class ClockDriver
{
public static void main(String[] args)
{
Clock test = new Clock();
test.setTime(x, x, x);
System.out.printf("The time is: ", test.getHours(), test.getMinutes(), test.getSeconds());
}
}
Any help or input is greatly appreciated.