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

Java program: Please ontinue my expansion of the Clock class (Clock.java) and dr

ID: 3763671 • Letter: J

Question

Java program:

Please ontinue my expansion of the Clock class (Clock.java) and driver program (TestClockProg.java) which was discussed in class to include methods such as:

sumClock.addTimes(myClock, yourClock)


and

diffClock.subTimes(myClock, yourClock) //This would be a method to subtract 2 clock times.

Many Thanks in advance!!

//class Clock

public class Clock
{
    private int hr; //store hours
    private int min; //store minutes
    private int sec; //store seconds


        //Postcondition: hr = 0; min = 0; sec = 0
    public Clock()
    {
        setTime(0, 0, 0);
        System.out.println("Inside the version with NO parameters!");
    }


    public Clock(int hours, int minutes, int seconds)
    {
        setTime(hours, minutes, seconds);
        System.out.println("Inside the version with parameters!");
    }

        //Method to set the time
        //The time is set according to the parameters
        //Postcondition: hr = hours; min = minutes; sec = 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
        //Postcondition: The value of hr is returned.
    public int getHours()
    {
        return hr;
    }

        //Method to return the minutes
        //Postcondition: The value of min is returned.
    public int getMinutes()
    {
        return min;
    }

        //Method to return the seconds
        //Postcondition: The value of sec is returned.
    public int getSeconds()
    {
        return sec;
    }

        //Method to print the time
        //Postcondition: Time is printed in the form hh:mm:ss.
    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);
    }

        //Method to increment the time by one second
        //Postcondition: 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
         }
    }

        //Method to increment the time by one minute
        //Postcondition: 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
        }
    }

        //Method to increment the time by one hour
        //Postcondition: The time is incremented by one hour.
        //If the before-increment time is 23:45:53, the time
        //is reset to 00:45:53.
    public void incrementHours()
    {
        hr++;

        if (hr > 23)
           hr = 0;
    }

        //Method to compare the two times
        //Postcondition: Returns true if this time is equal to
        //               otherClock; otherwise returns false
    public boolean equals(Clock otherClock)
    {
        return (hr == otherClock.hr
                && min == otherClock.min
                && sec == otherClock.sec);
    }

        //Method to copy the time
        //Postcondition: The instance variables of otherClock are
        //               copied into the corresponding data members
        //               of this time.
        //               hr = otherClock.hr; min = otherClock.min;
        //               sec = otherClock.sec.
    public void makeCopy(Clock otherClock)
    {
        hr = otherClock.hr;
        min = otherClock.min;
        sec = otherClock.sec;
    }

        //Method to return a copy of the time
        //Postcondition: A copy of the object is created
        //               and a reference of the copy is returned.
    public Clock getCopy()
    {
        Clock temp = new Clock();

        temp.hr = hr;
        temp.min = min;
        temp.sec = sec;

        return temp;
    }

   
    public String toString()
    {
        String str = "";

        if (hr < 10)
             str = "0";
        str = str + hr + ":";

        if (min < 10)
             str = str + "0" ;
        str = str + min + ":";

        if (sec < 10)
             str = str + "0";
        str = str + sec;

        return str;
    }
   
    public void addTimes(Clock a, Clock b)
    {
    hr=7;
    min=7;
    sec=7;
    }
   
  
}

//Program to test the various operations of the class Clock

import java.util.*;

public class TestProgClock
{
    static Scanner console = new Scanner(System.in);

    public static void main(String[] args)
    {
        Clock myClock = new Clock(5, 4, 30);          //Line 1
       Clock yourClock = new Clock(0,0,0);                //Line 2
       Clock sumClock = new Clock(0,0,0);                //Line 2

        int hours;                                    //Line 3
        int minutes;                                  //Line 4
        int seconds;                                  //Line 5

        System.out.print("Line 6: myClock: ");        //Line 6
        myClock.printTime();                          //Line 7
        System.out.println();                         //Line 8

        System.out.print("Line 9: yourClock: ");      //Line 9
        yourClock.printTime();                        //Line 10
        System.out.println();                         //Line 11

        yourClock.setTime(5, 45, 16);                 //Line 12

        System.out.print("Line 13: After setting "
                       + "the time, yourClock: ");    //Line 13
        yourClock.printTime();                        //Line 14
        System.out.println();                         //Line 15

        if (myClock.equals(yourClock))                //Line 16
            System.out.println("Line 17: Both the "
                             + "times are equal.");   //Line 17
        else                                          //Line 18
            System.out.println("Line 19: The two "
                             + "times are not "
                             + "equal.");             //Line 19

        System.out.print("Line 20: Enter the hours, "
                       + "minutes, and seconds: ");   //Line 20

        hours = console.nextInt();                    //Line 21
        minutes = console.nextInt();                  //Line 22
        seconds = console.nextInt();                  //Line 23
        System.out.println();                         //Line 24

        myClock.setTime(hours, minutes, seconds);     //Line 25

        System.out.print("Line 26: New time of "
                       + "myClock: ");                //Line 26
        myClock.printTime();                          //Line 27
        System.out.println();                         //Line 28

        myClock.incrementSeconds();                   //Line 29

        System.out.print("Line 30: After "
                       + "incrementing the time by "
                       + "one second, myClock: ");    //Line 30
        myClock.printTime();                          //Line 31
        System.out.println();                         //Line 32

        yourClock.makeCopy(myClock);                  //Line 33
        System.out.print("Line 34: After copying "
                       + "myClock into yourClock, "
                       + "yourClock: ");              //Line 34
        yourClock.printTime();                        //Line 35
        System.out.println();                         //Line 36
        System.out.println("Myclock = " + myClock);                         //Line 36
        sumClock.addTimes(myClock,yourClock);
        System.out.println("sumClock = " + sumClock);
    }//end main
}

Explanation / Answer

    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);
     }
    }
  
  
        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());
           }
    }
  
   

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote