Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hi I need help with a Clock class in java I need to create a method to add and make another method to subtract two

Hi I need help with a Clock class in java I need to create a method to add and make another method to subtract two clock times and it should return the difference between them after adding and subtracting them together I already started but it doesnt subtract or add it just remains the same and only one sec it adds from the seconds and not the minutes or hours here is my code.

//class Clock

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

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

//Constructor with parameters, to set the time //The time is set according to the parameters //Postcondition: hr = hours; min = minutes; sec = seconds 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 => hr = hours; else hr = 0;

if (0 => min = minutes; else min = 0;

if (0 => 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 System.out.print("0"); System.out.print(hr + ":");

if (min System.out.print("0"); System.out.print(min + ":");

if (sec 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 str = "0"; str = str + hr + ":";

if (min str = str + "0" ; str = str + min + ":";

if (sec str = str + "0"; str = str + sec;

return str; } public void addTimes(Clock Clockb, Clock myClock) { hr += Clockb.getHours(); min +=Clockb.getMinutes(); sec +=Clockb.getSeconds(); //Fixing overflow problem if(sec > 59) { min++; sec %=60; } if(min>59) { hr++; min%=60; } if(hr>60) { hr %=3600; } System.out.println(hr + "hr" + min + "min" + sec + "sec");

} public void subTimes(Clock Clockb, Clock myClock) { int totalSeconds, totalSeconds2; totalSeconds=Clockb.hr-(3600*min*60-sec); totalSeconds2=myClock.hr*3600; totalSeconds=Clockb.min-(sec*60); totalSeconds=myClock.min*sec; totalSeconds=Clockb.min-(sec * 60); totalSeconds=myClock.sec*sec; System.out.println(hr + "hr" +min +"min" + sec +"sec");

} }

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); int hours; //Line 3 int minutes; //Line 4 int seconds; //Line 5

System.out.println("Line 6: myClock: " + myClock); //Line 6

System.out.println("Line 7: yourClock: " + yourClock); //Line 7

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

System.out.println("Line 13: After setting the " + "time, yourClock: " + yourClock); //Line 9

if (myClock.equals(yourClock)) //Line 10 System.out.println("Line 11: Both times " + "are equal."); //Line 11 else //Line 12 System.out.println("Line 13: The two times " + "are not equal"); //Line 13

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

hours = console.nextInt(); //Line 15 minutes = console.nextInt(); //Line 16 seconds = console.nextInt(); //Line 17 System.out.println(); myClock.setTime(hours,minutes,seconds); //Line 19

System.out.println("Line 20: New myClock: " + myClock); //Line 20

myClock.incrementSeconds(); //Line 21 //Line 18

System.out.printf("Line 22: After incrementing " + "the clock by one second, " + "myClock: %s%n", myClock); //Line 22

yourClock.makeCopy(myClock); //Line 23

System.out.println("Line 24: After copying " + "myClock into yourClock, " + "yourClock: " + yourClock); //Line 24 System.out.println("MyClock= " + myClock); //Line 18 sumClock.addTimes(yourClock, myClock); System.out.println("sumClock= " + sumClock); System.out.println("MyClock= " + myClock); //Line 18 myClock.subTimes(yourClock, myClock); System.out.println("diffClock= " + myClock); }//end main }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Mobile Usability

Authors: Jakob Nielsen, Raluca Budiu

1st Edition

0133122131, 9780133122138

More Books

Students also viewed these Programming questions