% 24) >= 24 )
{
h_ = (h_ + h) % 24;
} else h_ += h % 24;
Здесь в секундах изменить 24 на 3600?
#include <iostream> class Clock { int h_, m_, s_; public: void AddH(int h) { h_ += h; while (h_ >= 24) { h_ -= 24; } } void AddM(int m) { m_ += m; while (m_ >= 60) { m_ -= 60; AddH(1); } } void AddS(int s) { s_ += s; while (s_ >= 60) { s_ -= 60; AddM(1); } } void SubH(int h) { h_ -= h % 24; } void SubM(int m) { SubH(m / 60); m_ += (m / 60) * 60; m_-= m; while(m_ >= 60) { AddH(1); } } void SubS(int s) { SubM(s / 60); s_ += (s / 60) * 60; s_-= s; while(s_ >= 60) { AddM(1); } } Clock(int h, int m, int s) { h_ = 0, m_ = 0, s_ = 0; AddH(h); AddM(m); AddS(s); } Clock(int m, int s) { h_ = 0, m_ = 0, s_ = 0; AddM(m); AddS(s); } Clock(int s) { h_ = 0, m_ = 0, s_ = 0; AddS(s); } };
Обсуждают сегодня