//******************************************************************
// SPECIFICATION FILE (timetyp1.h)
//
// (This is for the first version of the TimeType class in Chap. 11) 
//
// This file gives the specification
// of a TimeType abstract data type
//******************************************************************


class TimeType
{
public:
    void Set( /* in */ int hours,
              /* in */ int minutes,
              /* in */ int seconds );
        // Precondition:
        //     0 <= hours <= 23  &&  0 <= minutes <= 59
        //  && 0 <= seconds <= 59
        // Postcondition:
        //     Time is set according to the incoming parameters
        // NOTE:
        //     This function MUST be called prior to
        //     any of the other member functions

    void 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

    void Write() const;
        // Precondition:
        //     The Set function has been invoked at least once
        // Postcondition:
        //     Time has been output in the form HH:MM:SS

    bool Equal( /* in */ TimeType 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

    bool LessThan( /* in */ TimeType 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
private:
    int hrs;
    int mins;
    int secs;
};
