/**
* Time2.java
* Time2 class declaration with overloaded constructors.
* @Ghifari Astaudi Ukumullah
* @version (a version number or a date)
*/
public class Time2
{
private int hour; // 0 - 23
private int minute; // 0 - 59
private int second; // 0 - 59
// Time2 no argument constructor:
// initializes each instance variable to zero
public Time2()
{
this ( 0, 0, 0 ); // invoke Time2 constructor with three arguments
} // each Time2 no argument constructor
// Time 2 constructor: hour supplied, minute and second defaulted to 0
public Time2 ( int h )
{
this ( h, 0, 0 ); // invoke Time2 constructor with three arguments
} // end Time2 one argument constructor
// Time 2 constructor: hour and minute supplied, second defaulted to 0
public Time2 ( int h, int m )
{
this ( h, m, 0 ); // invoke Time2 constructor with three arguments
} // end Time2 two arguments constructor
// Time 2 constructor: hour, minute, and second supplied
public Time2 ( int h, int m, int s )
{
setTime ( h, m, s ); // invoke Time2 constructor with three arguments
} // end Time2 three arguments constructor
// Time2 constructor: another object supplied
public Time2 ( Time2 time )
{
// invoke Time2 three arguments contructor
this ( time.getHour(), time.getMinute(), time.getSecond() );
} // end Time2 constructor with a Time2 object arguments
// Set Methods
// set a new time value using universal time;
// validate the data
public void setTime ( int h, int m, int s )
{
setHour ( h ); // set hour
setMinute ( m ); // set minute
setSecond ( s ); // set second
} // end method setTime
// validate and set hour
public void setHour ( int h )
{
if ( h >= 0 && h < 24 )
hour = h;
else
throw new IllegalArgumentException ( "hour must be 0 - 23");
} // end method setHour
// validate and set minute
public void setMinute ( int m )
{
if ( m >= 0 && m < 60 )
minute = m;
else
throw new IllegalArgumentException ( "minute must be 0 - 59" );
} // end method setMinute
// validate and set second
public void setSecond ( int s )
{
if ( s >= 0 && s < 60 )
second = ((s>=0 && s<60)? s : 0);
else
throw new IllegalArgumentException ( "second must be 0 - 59" );
} // end method setSecond
// Get Methods
// get hour value
public int getHour ()
{
return hour;
} // end method getHour
//get minute value
public int getMinute ()
{
return minute;
} // end method getMinute
// get second value
public int getSecond()
{
return second;
} // end method getSecond
// convert to String in universal-time format (HH:NMM:SS)
public String toUniversalString()
{
return String.format (
"%02d:%02d:%02d", getHour(), getMinute(), getSecond() );
} // end method toUniversalString
// convert to String in standard-time format (H:MM:SS) AM or PM
public String toString ()
{
return String.format ( "%d:%02d:%02d %s",
( (getHour() == 0 || getHour() == 12 ) ? 12 : getHour()%12 ),
getMinute(), getSecond(), ( getHour() < 12 ? "AM" : "PM" ) );
} // end method toString
} // end class Time2