//*************************************************************** // // Title : Time // Author : Divya H Jain // Due date: 10-5-14 // // This Time object provides a number of facilities to keep track // of time. When called as a stand alone application, it prompts // the user for two times and subtracts them. When used with // other classes, it provides methods to print time, subtract // times, create times, and return the number of seconds // represented by a time. // //*************************************************************** import vista.*; public class Time { int hours; int minutes; int seconds; // Time constructor: Simply assign the state of this object values. public Time(int h, int m, int s) { hours = h; minutes = m; seconds = s; } // Time Constructor: When a Time object is created with no parameters, the // user of the program is prompted for the appropriate info. public Time() { VInput in = new VInput(); System.out.print (" hours: "); // get the hours System.out.flush (); hours = in.readInt(); System.out.print (" minutes: "); // get the minutes System.out.flush (); minutes = in.readInt(); System.out.print (" seconds: "); // get the seconds System.out.flush (); seconds = in.readInt(); } // Subtract method: Subtract the time X from the time "this". This method // needs to be careful to take into account borrowing of time. public Time subtract(Time x) { //Do the initial subtraction and create the return Time. Time ret = new Time(hours-x.hours, minutes-x.minutes, seconds-x.seconds); if (ret.seconds < 0) { // If we need to borrow for the seconds, do it now ret.seconds += 60; // 60 seconds in a minute ret.minutes--; // 1 minute for 60 seconds } if (ret.minutes < 0) { // If we need to borrow for the minutes, do it now. ret.minutes += 60; // 60 seconds to an hour ret.hours--; } return (ret); // Return the result. } // println Method: This method prints out the contents of a Time object in a neatly // arranged mannor. At the end, it finishes with a println(); public void println() { boolean comma = false; if (hours != 0) { // If there are hours.... System.out.print(hours); // print them! System.out.print(" hour"); if (hours != 1) // If there not only one hour, System.out.print("s"); // print an "s" to make it plural. comma = true; // If there are any more components, mark that we } // need to draw a comma. if (minutes != 0) { // If there are minutes... if (comma) // If there were hours, System.out.print(", "); // then print a comma to seperate them. System.out.print(minutes); System.out.print(" minute"); if (minutes != 1) // Make it plural if neccesary. System.out.print("s"); comma = true; } if (seconds != 0) { // If there are seconds... if (comma) // If there were either minutes or hours, System.out.print(", "); // print the seperator. System.out.print(seconds); System.out.print(" second"); if (seconds != 1) // Make it plural. System.out.print("s"); } System.out.println(); } // seconds Method: The seconds method returns the number of seconds that the objects // state contains. This is obtained by taking the seconds + the minutes*60 (60 // seconds in a minute) + the hours*3600 (3600 seconds in each hour). public int seconds() { return(seconds + minutes*60 + hours*60*60); } // Main Method: This is where the whole thing starts... public static void main (String args[]) { // Get the start time. System.out.println("Please enter the start time:"); Time StartTime = new Time(); System.out.println(); // Get the ending time. System.out.println("Please enter the ending time: "); Time EndTime = new Time(); // Compute the amount of elapsed time. Time elapsed = EndTime.subtract(StartTime); System.out.println(); System.out.print("The elapsed time is "); elapsed.println(); // Print the amount of elapsed time. // Print the amount of elapsed seconds. System.out.print("Total elapsed seconds: "); System.out.println(elapsed.seconds()); // Wait for <ENTER> to be pressed. VInput in = new VInput(); in.waitForCR(); } }
WHAT'S NEW?
Loading...
0 comments:
Post a Comment