diff options
sem 6
4 files changed, 119 insertions, 0 deletions
| -rw-r--r-- | Sem. 06/README.md | 0 | ||||
| -rw-r--r-- | Sem. 06/Time/Source.cpp | 14 | ||||
| -rw-r--r-- | Sem. 06/Time/Time.cpp | 78 | ||||
| -rw-r--r-- | Sem. 06/Time/Time.h | 27 |
diff --git a/Sem. 06/README.md b/Sem. 06/README.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Sem. 06/README.md diff --git a/Sem. 06/Time/Source.cpp b/Sem. 06/Time/Source.cpp new file mode 100644 index 0000000..e4dd497 --- /dev/null +++ b/Sem. 06/Time/Source.cpp @@ -0,0 +1,14 @@ +#include <iostream> +#include "Time.h" + +using namespace std; + + +int main() +{ + Time t(12, 30, 30); + + t.print(); + t.addMinutes(45); + t.print(); +}
\ No newline at end of file diff --git a/Sem. 06/Time/Time.cpp b/Sem. 06/Time/Time.cpp new file mode 100644 index 0000000..65549f7 --- /dev/null +++ b/Sem. 06/Time/Time.cpp @@ -0,0 +1,78 @@ +#include "Time.h" +#include <iostream> + +Time::Time() : Time(0, 0, 0){} + +Time::Time(size_t hours, size_t mins, size_t seconds) +{ + setHours(hours); + setMins(mins); + setSeconds(seconds); +} + +size_t Time::getHours() +{ + return hours; +} +size_t Time::getMins() +{ + return mins; +} +size_t Time::getSeconds() +{ + return seconds; +} +void Time::setHours(size_t hours) +{ + if (hours >= 24) + hours = 0; + this->hours = hours; +} +void Time::setMins(size_t mins) +{ + if (mins > 59) + mins = 0; + this->mins = mins; +} +void Time::setSeconds(size_t seconds) +{ + if (seconds > 59) + seconds = 0; + this->seconds = seconds; +} +void Time::print() +{ + std::cout << hours << ":" << mins << ":" << seconds << std::endl; +} + +void Time::addSeconds(size_t seconds) +{ + size_t currentTimeSeconds = convertTimeToSeconds(); + + currentTimeSeconds += seconds; + + setTimeBySeconds(currentTimeSeconds); + +} +void Time::addMinutes(size_t minutes) +{ + addSeconds(60 * minutes); +} +void Time::addHours(size_t hours) +{ + addMinutes(60 * hours); +} +size_t Time::convertTimeToSeconds() +{ + return hours * 3600 + mins * 60 + seconds; +} +void Time::setTimeBySeconds(size_t seconds) //12000 +{ + hours = seconds / 3600; + seconds %= 3600; + + mins = seconds / 60; + seconds %= 60; + + this->seconds = seconds; +}
\ No newline at end of file diff --git a/Sem. 06/Time/Time.h b/Sem. 06/Time/Time.h new file mode 100644 index 0000000..a253c64 --- /dev/null +++ b/Sem. 06/Time/Time.h @@ -0,0 +1,27 @@ +class Time +{ + size_t hours; + size_t mins; + size_t seconds; + + size_t convertTimeToSeconds(); + void setTimeBySeconds(size_t); + +public: + Time(); + Time(size_t hours, size_t mins, size_t seconds); + + + size_t getHours(); + size_t getMins(); + size_t getSeconds(); + void setHours(size_t hours); + void setMins(size_t mins); + void setSeconds(size_t seconds); + + void addSeconds(size_t seconds); + void addMinutes(size_t seconds); + void addHours(size_t seconds); + + void print(); +};
\ No newline at end of file |
