Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 06 / Time
diff options
context:
space:
mode:
Commit1ab579546728b812c24452bcc891d92dcf332017 (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2021-04-02 14:25:28 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2021-04-02 14:25:28 +0300
Filesafc909edc79041ced63660bb8bcdb4d63defd0f7 /Sem. 06/Time
Object-oriented_programming_FMI-1ab579546728b812c24452bcc891d92dcf332017.tar
Object-oriented_programming_FMI-1ab579546728b812c24452bcc891d92dcf332017.tar.gz
Object-oriented_programming_FMI-1ab579546728b812c24452bcc891d92dcf332017.zip
Parent44c6ed03656cc74e3737477f9e01eb8ae8f3da09 (diff)
sem 6
3 files changed, 119 insertions, 0 deletions
-rw-r--r--Sem. 06/Time/Source.cpp14
-rw-r--r--Sem. 06/Time/Time.cpp78
-rw-r--r--Sem. 06/Time/Time.h27
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