//******************************************************************
// IMPLEMENTATION FILE (timecard.cpp)
// This file implements the TimeCard class member functions
//******************************************************************
#include "timecard.h"
#include <iostream>

using namespace std;

// Private members of class:
//    long id;
//    Time timeStamp;

//******************************************************************

TimeCard::TimeCard()

// Default constructor

// Postcondition:
//     Time is 0:0:0 (via implicit call to timeStamp object's
//     default constructor)
//  && id == 0

{
    id = 0;
}

//******************************************************************

void TimeCard::Punch( /* in */ int hours,
                      /* in */ int minutes,
                      /* in */ int seconds )

// Precondition:
//     0 <= hours <= 23  &&  0 <= minutes <= 59
//  && 0 <= seconds <= 59
// Postcondition:
//     Time is punched according to hours, minutes, and seconds

{
    timeStamp.Set(hours, minutes, seconds);
}

//******************************************************************

void TimeCard::SetID( /* in */ long idNum )

// Precondition:
//     idNum is assigned
// Postcondition:
//     id == idNum

{
    id = idNum;
}

//******************************************************************

long TimeCard::IDPart() const

// Postcondition:
//     Function value == id

{
    return id;
}

//******************************************************************

Time TimeCard::TimePart() const

// Postcondition:
//     Function value == timeStamp

{
    return timeStamp;
}

//******************************************************************

void TimeCard::Print() const

// Postcondition:
//     Time card has been output in the form
//       ID: 235658 Time: 08:14:25

{
    cout << "ID: " << id << " Time: ";
    timeStamp.Write();
}
