#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class Time
{
private :
int hours;
int minutes;
int seconds;
public :
Time( string timeStr) ;
int toSeconds( ) ;
void displayTime( ) ;
} ;
class Clock
{
private :
string name;
Time currentTime;
public :
Clock( string clockName, string timeStr) ;
void showElapsedTime( ) ;
} ;
Time:: Time ( string timeStr)
{
char colon;
stringstream ss( timeStr) ;
ss >> hours >> colon >> minutes >> colon >> seconds;
}
int Time:: toSeconds ( )
{
return hours * 3600 + minutes * 60 + seconds;
}
void Time:: displayTime ( )
{
cout << ( hours < 10 ? "0" : "" ) << hours << ":"
<< ( minutes < 10 ? "0" : "" ) << minutes << ":"
<< ( seconds < 10 ? "0" : "" ) << seconds;
}
Clock:: Clock ( string clockName, string timeStr) : name( clockName) , currentTime( timeStr) { }
void Clock:: showElapsedTime ( ) {
cout << "Clock " << name << " is displaying time: " ;
currentTime.displayTime ( ) ;
cout << endl;
cout << "Elapsed time since 00:00:00: " << currentTime.toSeconds ( ) << " seconds." << endl;
}
int main( ) {
// Input clock details
string clockName, timeStr;
cout << "Enter clock name: " ;
getline( cin , clockName) ;
cout << "Enter current time (HH:MM:SS): " ;
cin >> timeStr;
// Create a Clock object
Clock myClock( clockName, timeStr) ;
// Display elapsed time
myClock.showElapsedTime ( ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBUaW1lCnsKcHJpdmF0ZToKICAgIGludCBob3VyczsKICAgIGludCBtaW51dGVzOwogICAgaW50IHNlY29uZHM7CgpwdWJsaWM6CiAgICBUaW1lKHN0cmluZyB0aW1lU3RyKTsgCiAgICBpbnQgdG9TZWNvbmRzKCk7CiAgICB2b2lkIGRpc3BsYXlUaW1lKCk7Cn07CgpjbGFzcyBDbG9jawp7CnByaXZhdGU6CiAgICBzdHJpbmcgbmFtZTsKICAgIFRpbWUgY3VycmVudFRpbWU7CgpwdWJsaWM6CiAgICBDbG9jayhzdHJpbmcgY2xvY2tOYW1lLCBzdHJpbmcgdGltZVN0cik7CiAgICB2b2lkIHNob3dFbGFwc2VkVGltZSgpOwp9OwoKVGltZTo6VGltZShzdHJpbmcgdGltZVN0cikgCnsKICAgIGNoYXIgY29sb247IAogICAgc3RyaW5nc3RyZWFtIHNzKHRpbWVTdHIpOwogICAgc3MgPj4gaG91cnMgPj4gY29sb24gPj4gbWludXRlcyA+PiBjb2xvbiA+PiBzZWNvbmRzOwp9CgppbnQgVGltZTo6dG9TZWNvbmRzKCkKewogICAgcmV0dXJuIGhvdXJzICogMzYwMCArIG1pbnV0ZXMgKiA2MCArIHNlY29uZHM7Cn0KCnZvaWQgVGltZTo6ZGlzcGxheVRpbWUoKSAKewogICAgY291dCA8PCAoaG91cnMgPCAxMCA/ICIwIiA6ICIiKSA8PCBob3VycyA8PCAiOiIKICAgICAgICA8PCAobWludXRlcyA8IDEwID8gIjAiIDogIiIpIDw8IG1pbnV0ZXMgPDwgIjoiCiAgICAgICAgPDwgKHNlY29uZHMgPCAxMCA/ICIwIiA6ICIiKSA8PCBzZWNvbmRzOwp9CgpDbG9jazo6Q2xvY2soc3RyaW5nIGNsb2NrTmFtZSwgc3RyaW5nIHRpbWVTdHIpIDogbmFtZShjbG9ja05hbWUpLCBjdXJyZW50VGltZSh0aW1lU3RyKSB7fQoKdm9pZCBDbG9jazo6c2hvd0VsYXBzZWRUaW1lKCl7CiAgICBjb3V0IDw8ICJDbG9jayAiIDw8IG5hbWUgPDwgIiBpcyBkaXNwbGF5aW5nIHRpbWU6ICI7CiAgICBjdXJyZW50VGltZS5kaXNwbGF5VGltZSgpOwogICAgY291dCA8PCBlbmRsOwogICAgY291dCA8PCAiRWxhcHNlZCB0aW1lIHNpbmNlIDAwOjAwOjAwOiAiIDw8IGN1cnJlbnRUaW1lLnRvU2Vjb25kcygpIDw8ICIgc2Vjb25kcy4iIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgLy8gSW5wdXQgY2xvY2sgZGV0YWlscwogICAgc3RyaW5nIGNsb2NrTmFtZSwgdGltZVN0cjsKCiAgICBjb3V0IDw8ICJFbnRlciBjbG9jayBuYW1lOiAiOwogICAgZ2V0bGluZShjaW4sIGNsb2NrTmFtZSk7CiAgICBjb3V0IDw8ICJFbnRlciBjdXJyZW50IHRpbWUgKEhIOk1NOlNTKTogIjsKICAgIGNpbiA+PiB0aW1lU3RyOwoKICAgIC8vIENyZWF0ZSBhIENsb2NrIG9iamVjdAogICAgQ2xvY2sgbXlDbG9jayhjbG9ja05hbWUsIHRpbWVTdHIpOwoKICAgIC8vIERpc3BsYXkgZWxhcHNlZCB0aW1lCiAgICBteUNsb2NrLnNob3dFbGFwc2VkVGltZSgpOwoKICAgIHJldHVybiAwOwp9Cg==