#include <iostream>
using namespace std;
class Time
{
private:
int hours, minutes, seconds;
public:
Time();
Time(int, int, int);
int getHours()const;
int getMinutes()const;
int getSeconds()const;
void setHours(int);
void setMinutes(int);
void setSeconds(int);
void set(int, int, int);
void print();
};
Time::Time(int hours, int minutes, int seconds)
{
set(hours, minutes, seconds);
}
Time::Time()
{
hours = 0;
minutes = 0;
seconds = 0;
}
void Time::setHours(int hours)
{
if (hours > -1 && hours < 24)
this->hours = hours;
else
this->hours = 0;
}
int Time::getHours()const
{
return hours;
}
void Time::setMinutes(int mminutes)
{
if (mminutes > -1 && mminutes < 60)
this->minutes = mminutes;
else
this->minutes = 0;
}
int Time::getMinutes()const
{
return minutes;
}
void Time::setSeconds(int seconds)
{
if (seconds > -1 && seconds < 60)
this->seconds = seconds;
else
this->seconds = 0;
}
int Time::getSeconds()const
{
return seconds;
}
void Time::set(int hours, int minutes, int seconds)
{
setHours(hours);
setMinutes(minutes);
setSeconds(seconds);
}
void Time::print()
{
cout << hours << ":" << minutes << ":" << seconds;
}
int main()
{
Time time;
time.setHours(12);
time.setMinutes(42);
time.setSeconds(54);
time.print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFRpbWUKewpwcml2YXRlOgogICAgaW50IGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzOwpwdWJsaWM6CiAgICBUaW1lKCk7CiAgICBUaW1lKGludCwgaW50LCBpbnQpOwogICAgaW50IGdldEhvdXJzKCljb25zdDsKICAgIGludCBnZXRNaW51dGVzKCljb25zdDsKICAgIGludCBnZXRTZWNvbmRzKCljb25zdDsKCiAgICB2b2lkIHNldEhvdXJzKGludCk7CiAgICB2b2lkIHNldE1pbnV0ZXMoaW50KTsKICAgIHZvaWQgc2V0U2Vjb25kcyhpbnQpOwogICAgdm9pZCBzZXQoaW50LCBpbnQsIGludCk7CiAgICB2b2lkIHByaW50KCk7Cn07CgpUaW1lOjpUaW1lKGludCBob3VycywgaW50IG1pbnV0ZXMsIGludCBzZWNvbmRzKQp7CiAgICBzZXQoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOwp9CgpUaW1lOjpUaW1lKCkKewogICAgaG91cnMgPSAwOwogICAgbWludXRlcyA9IDA7CiAgICBzZWNvbmRzID0gMDsKfQoKdm9pZCBUaW1lOjpzZXRIb3VycyhpbnQgaG91cnMpCnsKICAgIGlmIChob3VycyA+IC0xICYmIGhvdXJzIDwgMjQpCiAgICAgICAgdGhpcy0+aG91cnMgPSBob3VyczsKICAgIGVsc2UKICAgICAgICB0aGlzLT5ob3VycyA9IDA7Cn0KaW50IFRpbWU6OmdldEhvdXJzKCljb25zdAp7CiAgICByZXR1cm4gaG91cnM7Cn0KCnZvaWQgVGltZTo6c2V0TWludXRlcyhpbnQgbW1pbnV0ZXMpCnsKICAgIGlmIChtbWludXRlcyA+IC0xICYmIG1taW51dGVzIDwgNjApCiAgICAgICAgdGhpcy0+bWludXRlcyA9IG1taW51dGVzOwogICAgZWxzZQogICAgICAgIHRoaXMtPm1pbnV0ZXMgPSAwOwp9CmludCBUaW1lOjpnZXRNaW51dGVzKCljb25zdAp7CiAgICByZXR1cm4gbWludXRlczsKfQoKdm9pZCBUaW1lOjpzZXRTZWNvbmRzKGludCBzZWNvbmRzKQp7CiAgICBpZiAoc2Vjb25kcyA+IC0xICYmIHNlY29uZHMgPCA2MCkKICAgICAgICB0aGlzLT5zZWNvbmRzID0gc2Vjb25kczsKICAgIGVsc2UKICAgICAgICB0aGlzLT5zZWNvbmRzID0gMDsKfQppbnQgVGltZTo6Z2V0U2Vjb25kcygpY29uc3QKewogICAgcmV0dXJuIHNlY29uZHM7Cn0KCnZvaWQgVGltZTo6c2V0KGludCBob3VycywgaW50IG1pbnV0ZXMsIGludCBzZWNvbmRzKQp7CiAgICBzZXRIb3Vycyhob3Vycyk7CiAgICBzZXRNaW51dGVzKG1pbnV0ZXMpOwogICAgc2V0U2Vjb25kcyhzZWNvbmRzKTsKfQoKdm9pZCBUaW1lOjpwcmludCgpCnsKICAgIGNvdXQgPDwgaG91cnMgPDwgIjoiIDw8IG1pbnV0ZXMgPDwgIjoiIDw8IHNlY29uZHM7Cn0KCmludCBtYWluKCkKewogICAgCiAgICBUaW1lIHRpbWU7CiAgICB0aW1lLnNldEhvdXJzKDEyKTsKICAgIHRpbWUuc2V0TWludXRlcyg0Mik7CiAgICB0aW1lLnNldFNlY29uZHMoNTQpOwoKICAgIHRpbWUucHJpbnQoKTsKICAgIHJldHVybiAwOwp9