diff options
feat(Week02): Add solutions
1 files changed, 19 insertions, 0 deletions
| -rw-r--r-- | Week02/Exercise06/time.cpp | 19 |
diff --git a/Week02/Exercise06/time.cpp b/Week02/Exercise06/time.cpp new file mode 100644 index 0000000..74b1447 --- /dev/null +++ b/Week02/Exercise06/time.cpp @@ -0,0 +1,19 @@ +#include "time.h" + +unsigned timeToMilliseconds(const Time& t) { + return (t.hour * 60 * 60 + t.minutes * 60 + t.seconds) * 1000; +} + +void Time::Advance(const Time& other) { + // По-простия вариант е с експлицитни сметки, но помислете защо това работи + *this = millisecondsToTime(timeToMilliseconds(*this) + timeToMilliseconds(other)); +} + +Time millisecondsToTime(unsigned int milliseconds) { + Time t; + t.hour = (milliseconds / 1000 / 60 / 60) % 24; + t.minutes = (milliseconds / 1000 / 60) % 60; + t.seconds = (milliseconds / 1000) % 60; + + return t; +} |
