Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Following the instructions in the problem statement, design and implement a Java

ID: 3694648 • Letter: F

Question

Following the instructions in the problem statement, design and implement a Java program for programming exercise 10.1, page 399 (name it Time.java).

*10.1 (The Time class) Design a class named Time. The class contains:

The data fields hour, minute, and second that represent a time.

A no-arg constructor that creates a Time object for the current time. (The

values of the data fields will represent the current time.)

A constructor that constructs a Time object with a specified elapsed time

since midnight, January 1, 1970, in milliseconds. (The values of the data

fields will represent this time.)

A constructor that constructs a Time object with the specified hour, minute,

and second.

Three getter methods for the data fields hour, minute, and second,

respectively.

A method named setTime(long elapseTime) that sets a new time

for the object using the elapsed time. For example, if the elapsed time is 555550000 milliseconds, the hour is 10, the minute is 19, and the second is 10.

Draw the UML diagram for the class and then implement the class. Write a test program that creates two Time objects (using new Time() and new Time(555550000)) and displays their hour, minute, and second in the format hour:minute:second.

(Hint: The first two constructors will extract the hour, minute, and second from the elapsed time. For the no-arg constructor, the current time can be obtained using System.currentTimeMillis(), as shown in Listing 2.7, ShowCurrentTime.java.)

**Next, develop a test program in a separate file (call it TestTime.java) to create couple time object and display their time as specified in the problem statement. Document your code, and organize and space the outputs properly. Use escape characters and formatting objects when applicable.

Explanation / Answer

/** Time.java with constructors and getters **/

import java.util.Calendar;

public class Time {
private int hour;
private int minute;
private int second;

public Time() {
Calendar calen= Calendar.getInstance();
hour=calen.get(Calendar.HOUR_OF_DAY);
minute=calen.get(Calendar.MINUTE);
second=calen.get(Calendar.SECOND);
}

public void setTime(long elapseTime){
long totalSeconds = elapseTime / 1000L;
this.second = (int)(totalSeconds % 60L);
long totalMinutes = totalSeconds / 60L;
this.minute = (int)(totalMinutes % 60L);
int totalHours = (int)(totalMinutes / 60L);
this.hour = (totalHours % 24);
}

public long getHour() {
return hour;
}

public long getMinute() {
return minute;
}

public long getSecond() {
return second;
}

public String toString(){
return getHour() + ":" + getMinute() + ":" + getSecond();
}
}


/* Test.java to test all the methods in Time class */

public class Test{
public static void main (String args[]){
Time time1 = new Time();
Time time2 = new Time();
  
time2.setTime(555550000);
  
System.out.println("First Time: "+ time1.toString());
System.out.println("Second Time: " + time2.toString());
}

}