/*
 *  Time.cpp
 *  T11-files
 */

#include <iostream>
#include "Time.h"

using namespace std;

void Time::print () const {
    cout << hour << ":" << minute << ":" << second << endl;
}

void Time::increment (double secs) {
    second += secs;

    while (second >= 60.0) {
        second -= 60.0;
        minute += 1;
    } // now second < 60
    while (minute >= 60) {
        minute -= 60.0;
        hour += 1;
    } // now minute < 60 and second < 60
}

bool Time::after (const Time& time2) const {
    if (hour > time2.hour) return true;
    if (hour < time2.hour) return false;
    // now we know the hours are equal
    if (minute > time2.minute) return true;
    if (minute < time2.minute) return false;
    // now we know the minutes and the hours are equal
    if (second > time2.second) return true;
    return false;
}

double Time::convertToSeconds () const {
    int minutes = hour * 60 + minute;
    double seconds = minutes * 60 + second;
    return seconds;
}

Time::Time (double secs) {
    hour = int (secs / 3600.0);
    secs -= hour * 3600.0;
    minute = int (secs / 60.0);
    secs -= minute * 60.0;
    second = secs;
}

Time::Time (int h, int m, double s)
{
    hour = h;  minute = m;  second = s;
}

Time::Time ()
{
	hour = minute = 0; second = 0.0;
}

Time Time::add (const Time& t2) const {
    double seconds = convertToSeconds () + t2.convertToSeconds ();
    Time time (seconds);
    return time;
}


