#include <bits/stdc++.h>
using namespace std;
class Time {
private :
int hours;
int minutes;
int seconds;
public :
Time( int h, int m, int s) : hours( 0 ) , minutes( 0 ) , seconds( 0 ) {
SetTime( h, m, s) ;
}
Time & SetTime( int h, int m, int s) {
SetHours( h) ;
SetMinutes( m) ;
SetSeconds( s) ;
return * this ;
}
Time& SetHours( int h) {
h = ( h >= 0 ) ? ( h % 24 ) : 0 ;
this- > hours = h;
return * this ;
}
int GetHours( ) { return hours; }
Time& SetMinutes( int m) {
m = ( m >= 0 && m < 60 ) ? m : 0 ;
this- > minutes = m;
return * this ;
}
int GetMinutes( ) { return minutes; }
int GetTotalMinutes( ) {
return GetHours( ) * 60 + minutes;
}
Time& SetSeconds( int s) {
s = ( s >= 0 && s < 60 ) ? s : 0 ;
this- > seconds = s;
return * this ;
}
int GetSeconds( ) { return seconds; }
int GetTotalSeconds( ) {
return GetTotalMinutes( ) * 60 + seconds;
}
void PrintHHMMSS( ) {
cout << ToSring( ":" ) << "\n " ;
}
string ToSring( string seperator = "-" ) {
string hours = to_string( this- > hours) ;
string minutes = to_string( this- > minutes) ;
string seconds = to_string( this- > seconds) ;
if ( hours.size ( ) == 1 )
hours = '0' + hours;
if ( minutes.size ( ) == 1 )
minutes = '0' + minutes;
if ( seconds.size ( ) == 1 )
seconds = '0' + seconds;
ostringstream oss;
oss<< hours<< seperator<< minutes<< seperator<< seconds;
return oss.str ( ) ;
}
} ;
int main( ) {
cout << "WARNING:" << endl;
cout << "The hours are calculated using a 24-hour cycle; any input exceeding 23 will wrap around." << endl;
cout << "Hours (h), Minutes (m), Seconds (s), or All (a)?\n " ;
string input;
getline( cin , input) ;
Time u( 0 , 0 ,0 ) ;
if ( input == "h" || input == "H" ) {
cout << "Enter the hours: " ;
int h;
cin >> h;
u.SetHours ( h) ;
}
else if ( input == "m" || input == "M" ) {
cout << "Enter the minutes: " ;
int m; cin >> m;
u.SetMinutes ( m) ;
}
else if ( input == "s" || input == "S" ) {
cout << "Enter the seconds:" ;
int s; cin >> s;
u.SetSeconds ( s) ;
}
else {
cout << "Enter Hours, Minutes, and Seconds:" ;
int h, m, s;
cin >> h >> m >> s;
u.SetTime ( h, m, s) ;
}
u.PrintHHMMSS ( ) ;
return 0 ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIFRpbWUgewpwcml2YXRlOgoJaW50IGhvdXJzOwoJaW50IG1pbnV0ZXM7CglpbnQgc2Vjb25kczsKcHVibGljOgoJVGltZShpbnQgaCwgaW50IG0sIGludCBzKSA6IGhvdXJzKDApLCBtaW51dGVzKDApLCBzZWNvbmRzKDApIHsKCQlTZXRUaW1lKGgsIG0sIHMpOwoJfQoJVGltZSAmU2V0VGltZShpbnQgaCwgaW50IG0sIGludCBzKSB7CgkJU2V0SG91cnMoaCk7CgkJU2V0TWludXRlcyhtKTsKCQlTZXRTZWNvbmRzKHMpOwoJCXJldHVybiAqdGhpczsKCX0KCVRpbWUmIFNldEhvdXJzKGludCBoKSB7CgkJaCA9IChoID49IDApID8gKGggJSAyNCkgOiAwOwoJCXRoaXMtPmhvdXJzID0gaDsKCQlyZXR1cm4gKnRoaXM7Cgl9CglpbnQgR2V0SG91cnMoKSB7cmV0dXJuIGhvdXJzO30KCVRpbWUmIFNldE1pbnV0ZXMoaW50IG0pIHsKCQkgbSA9IChtID49IDAgJiYgbSA8IDYwKSA/IG0gOiAwOwoJCXRoaXMtPm1pbnV0ZXMgPSBtOwoJCXJldHVybiAqdGhpczsKCX0KCWludCBHZXRNaW51dGVzKCkge3JldHVybiBtaW51dGVzO30KCWludCBHZXRUb3RhbE1pbnV0ZXMoKSB7CgkJcmV0dXJuIEdldEhvdXJzKCkgKiA2MCAgKyBtaW51dGVzOwoJfQoJVGltZSYgU2V0U2Vjb25kcyhpbnQgcykgewoJCXMgPSAocyA+PSAwICYmIHMgPCA2MCkgPyBzIDogMDsKCQl0aGlzLT5zZWNvbmRzID0gczsKCQlyZXR1cm4gKnRoaXM7Cgl9CglpbnQgR2V0U2Vjb25kcygpIHtyZXR1cm4gc2Vjb25kczt9CglpbnQgR2V0VG90YWxTZWNvbmRzKCkgewoJCXJldHVybiBHZXRUb3RhbE1pbnV0ZXMoKSAqIDYwICsgc2Vjb25kczsKCX0KCXZvaWQgUHJpbnRISE1NU1MoKSB7CgkJY291dDw8VG9TcmluZygiOiIpPDwiXG4iOwoJfQoJc3RyaW5nIFRvU3Jpbmcoc3RyaW5nIHNlcGVyYXRvciA9ICItIikgewoJCXN0cmluZyBob3VycyA9dG9fc3RyaW5nKHRoaXMtPmhvdXJzKTsKCQlzdHJpbmcgbWludXRlcyA9dG9fc3RyaW5nKHRoaXMtPm1pbnV0ZXMpOwoJCXN0cmluZyBzZWNvbmRzID10b19zdHJpbmcodGhpcy0+c2Vjb25kcyk7CgkJaWYgKGhvdXJzLnNpemUoKSA9PSAxKQoJCQlob3VycyA9ICcwJyArIGhvdXJzOwoJCWlmIChtaW51dGVzLnNpemUoKSA9PSAxKQoJCQltaW51dGVzID0gJzAnICsgbWludXRlczsKCQlpZiAoc2Vjb25kcy5zaXplKCkgPT0gMSkKCQkJc2Vjb25kcyA9ICcwJyArIHNlY29uZHM7CgkJb3N0cmluZ3N0cmVhbSBvc3M7CgkJb3NzPDwgaG91cnM8PHNlcGVyYXRvcjw8bWludXRlczw8c2VwZXJhdG9yPDxzZWNvbmRzOwoJCXJldHVybiBvc3Muc3RyKCk7Cgl9Cn07CmludCBtYWluKCkgewoJY291dCA8PCAiV0FSTklORzoiPDwgZW5kbDsKCWNvdXQgPDwgIlRoZSBob3VycyBhcmUgY2FsY3VsYXRlZCB1c2luZyBhIDI0LWhvdXIgY3ljbGU7IGFueSBpbnB1dCBleGNlZWRpbmcgMjMgd2lsbCB3cmFwIGFyb3VuZC4iIDw8IGVuZGw7Cgljb3V0IDw8ICJIb3VycyAoaCksIE1pbnV0ZXMgKG0pLCBTZWNvbmRzIChzKSwgb3IgQWxsIChhKT9cbiI7CglzdHJpbmcgaW5wdXQ7CglnZXRsaW5lKGNpbiwgaW5wdXQpOwoJVGltZSB1KDAsIDAsMCk7CglpZiAoaW5wdXQgPT0gImgiIHx8IGlucHV0ID09ICJIIikgewoJCWNvdXQgPDwgIkVudGVyIHRoZSBob3VyczogIjsKCQlpbnQgaDsKCQljaW4gPj4gaDsKCQl1LlNldEhvdXJzKGgpOwoJfQoJZWxzZSBpZiAoaW5wdXQgPT0gIm0iIHx8IGlucHV0ID09ICJNIikgewoJCWNvdXQgPDwgIkVudGVyIHRoZSBtaW51dGVzOiAiOwoJCWludCBtOyBjaW4gPj4gbTsKCQl1LlNldE1pbnV0ZXMobSk7Cgl9CgllbHNlIGlmIChpbnB1dCA9PSAicyIgfHwgaW5wdXQgPT0gIlMiKSB7CgkJY291dCA8PCAiRW50ZXIgdGhlIHNlY29uZHM6IjsKCQlpbnQgczsgY2luID4+IHM7CgkJdS5TZXRTZWNvbmRzKHMpOwoJfQoJZWxzZSB7CgkJY291dCA8PCAiRW50ZXIgSG91cnMsIE1pbnV0ZXMsIGFuZCBTZWNvbmRzOiI7CgkJaW50IGgsIG0sIHM7CgkJY2luID4+IGggPj4gbSA+PiBzOwoJCXUuU2V0VGltZShoLCBtLCBzKTsKCX0KCXUuUHJpbnRISE1NU1MoKTsKCXJldHVybiAwOwp9