I didn't think I'd need help again, but I'm pretty sure its not as bad as last time. I'm trying to increment the time in Time2.class, and that compiled. The problem is I can't make a class to use it as per the assignment, and that's because I used void on the methods. I don't know how to make a return type. I would love some guidance on this. I can't wait until I get done with this Java class, no offense to those of you who love it.
Basically my program has to increment seconds, minutes, and hours.
I also have to be sure that it increments to the next day if it goes from 11 - 12. (AM - PM and vice versa).
public class Time2
{
public int hour; // 0 - 23
public int minute; // 0 - 59
public int second; // 0 - 59
// Time2 no-argument constructor: initializes each instance variable
// to zero; ensures that Time2 objects start in a consistent state
public Time2()
{
this( 0, 0, 0 ); // invoke Time2 constructor with three arguments
} // end Time2 no-argument constructor
// Time2 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
// Time2 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-argument constructor
// Time2 constructor: hour, minute and second supplied
public Time2( int h, int m, int s )
{
setTime( h, m, s ); // invoke setTime to validate time
} // end Time2 three-argument constructor
// Time2 constructor: another Time2 object supplied
public Time2( Time2 time )
{
// invoke Time2 three-argument constructor
this( time.getHour(), time.getMinute(), time.getSecond() );
} // end Time2 constructor with a Time2 object argument
// Set Methods
// set a new time value using universal time; ensure that
// the data remains consistent by setting invalid values to zero
public void setTime( int h, int m, int s )
{
setHour( h ); // set the hour
setMinute( m ); // set the minute
setSecond( s ); // set the second
} // end method setTime
// validate and set hour
public void setHour( int h )
{
hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
} // end method setHour
// validate and set minute
public void setMinute( int m )
{
minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
} // end method setMinute
// validate and set second
public void setSecond( int s )
{
second = ( ( s >= 0 && s < 60 ) ? s : 0 );
} // 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
public void tick()
{
setSecond( second + 1 );
if ( second == 0 )
incrementMinute();
}
public void incrementMinute()
{
setMinute( minute + 1 );
if ( minute == 0 )
incrementHour();
}
public void incrementHour()
{
setHour( hour + 1 );
}
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
public class IncrementTest
{
public static void main( String args[] )
{
Time2 t1 = new Time2( 5, 18, 41);
Time2 t2 = new Time2( 7, 42, 24);
Time2 t3 = new Time2( 11, 59, 59);
System.out.println( "Time before tick method" );
System.out.printf( " %s\n", t3.toString() );
System.out.println( "Time after tick method" );
System.out.printf( " %s\n", t3.tick() );
System.out.println( "Time before incrementMinute method" );
System.out.printf( " %s\n", t2.toString() );
System.out.println( "Time after incrementMinute method" );
System.out.printf( " %s\n", t2.incrementMinute() );
System.out.println( "Time before incrementHour method" );
System.out.printf( " %s\n", t1.toString() );
System.out.println( "Time after incrementHour method" );
System.out.printf( " %s\n", t1.incrementHour() );
}//end method main
}//end class