//****************************************************************** // IMPLEMENTATION FILE (Time1.cpp) // This file implements the Time member functions //****************************************************************** #include "Time1.h" #include using namespace std; // Private members of class: // int hrs; // int mins; // int secs; //****************************************************************** void Time::Set( /* in */ int hours, /* in */ int minutes, /* in */ int seconds ) // Precondition: // 0 <= hours <= 23 && 0 <= minutes <= 59 // && 0 <= seconds <= 59 // Postcondition: // hrs == hours && mins == minutes && secs == seconds // NOTE: // This function MUST be called prior to // any of the other member functions { hrs = hours; mins = minutes; secs = seconds; } //****************************************************************** void Time::Increment() // Precondition: // The Set function has been invoked at least once // Postcondition: // Time has been advanced by one second, with // 23:59:59 wrapping around to 0:0:0 { secs++; if (secs > 59) { secs = 0; mins++; if (mins > 59) { mins = 0; hrs++; if (hrs > 23) hrs = 0; } } } //****************************************************************** void Time::Write() const // Precondition: // The Set function has been invoked at least once // Postcondition: // Time has been output in the form HH:MM:SS { if (hrs < 10) cout << '0'; cout << hrs << ':'; if (mins < 10) cout << '0'; cout << mins << ':'; if (secs < 10) cout << '0'; cout << secs; } //****************************************************************** bool Time::Equal( /* in */ Time otherTime ) const // Precondition: // The Set function has been invoked at least once // for both this time and otherTime // Postcondition: // Function value == true, if this time equals otherTime // == false, otherwise { return (hrs == otherTime.hrs && mins == otherTime.mins && secs == otherTime.secs); } //****************************************************************** bool Time::LessThan( /* in */ Time otherTime ) const // Precondition: // The Set function has been invoked at least once // for both this time and otherTime // && This time and otherTime represent times in the // same day // Postcondition: // Function value == true, if this time is earlier // in the day than otherTime // == false, otherwise { return (hrs < otherTime.hrs || hrs == otherTime.hrs && mins < otherTime.mins || hrs == otherTime.hrs && mins == otherTime.mins && secs < otherTime.secs); }