From e88ba7bd2e23ce3829913c7a51e3c0efab707f35 Mon Sep 17 00:00:00 2001 From: Dmitry Kokorin Date: Sun, 20 Mar 2016 11:26:47 +0300 Subject: [PATCH] clock: iteration 1 --- cpp/clock/clock.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cpp/clock/clock.cpp b/cpp/clock/clock.cpp index 8f34e4e..b08ad25 100644 --- a/cpp/clock/clock.cpp +++ b/cpp/clock/clock.cpp @@ -10,12 +10,12 @@ const minutes_t minutes_per_hour = 60; const hours_t hours_per_day = 24; const total_t minutes_per_day = hours_per_day * minutes_per_hour; -inline void make_date_independent(total_t total_minutes) +inline void wrap_midnight(total_t &total_minutes) { - while (total_minutes < 0) - total_minutes += minutes_per_day; + total_minutes %= minutes_per_day; - total_minutes = total_minutes % minutes_per_day; + if (total_minutes < 0) + total_minutes += minutes_per_day; } } @@ -24,7 +24,7 @@ inline void make_date_independent(total_t total_minutes) clock::clock(hours_t hours, minutes_t minutes) { total_minutes_ = minutes_per_hour*hours + minutes; - make_date_independent(total_minutes_); + wrap_midnight(total_minutes_); } bool clock::operator==(const clock &other) const @@ -47,7 +47,7 @@ clock clock::plus(minutes_t minutes) const clock result(*this); result.total_minutes_ += minutes; - make_date_independent(result.total_minutes_); + wrap_midnight(result.total_minutes_); return result; } @@ -59,7 +59,7 @@ clock clock::minus(minutes_t minutes) const clock::operator std::string() const { - minutes_t minutes = total_minutes_ % minutes_per_hour + minutes_t minutes = total_minutes_ % minutes_per_hour; hours_t hours = total_minutes_ / minutes_per_hour; char buff[6];