Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 1 / src / Generic / Date / Date.h
diff options
context:
space:
mode:
Commit24bdf39e6c21ab846f6c86803761d78a094e05c0 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-26 20:31:26 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-26 20:31:26 +0300
Files1b2077b088098cc7ae6afc946b10a4d680110294 /Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.tar
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.tar.gz
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.zip
Parentcbe944835cc0951a946d01f034b4d28ff9874a4e (diff)
Added files from project 1 (mirror)
1 files changed, 59 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h59
diff --git a/Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h b/Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h
new file mode 100644
index 0000000..89cc89c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h
@@ -0,0 +1,59 @@
+#ifndef HEADER_DATE
+#define HEADER_DATE
+
+/*! \file Date.h
+ * \brief Stores the declaration of class Date
+ */
+
+#include <istream>
+#include <ostream>
+#include "../String/String.h"
+
+/*! \brief Stores a day, month and year
+ */
+class Date {
+ unsigned short day;
+ unsigned short month;
+ unsigned short year;
+
+ bool isLeapYear();
+ unsigned short daysInMonth();
+
+public:
+ //! Sets date as 01 May 2022
+ Date();
+ //! Parses string
+ Date(const char* str);
+ //! Sets day, month and year
+ Date(unsigned short day, unsigned short month, unsigned short year);
+
+ //! Returns the day
+ unsigned short get_day() const;
+ //! Sets the day
+ bool set_day(unsigned short day);
+ //! Returns the month
+ unsigned short get_month() const;
+ //! Sets the month
+ bool set_month(unsigned short month);
+ //! Returns the year
+ unsigned short get_year() const;
+ //! Sets the year
+ bool set_year(unsigned short year);
+
+ //! Returns the date as a String object
+ String createString() const;
+
+ //! Reads date from stream
+ void read(std::istream& istr);
+ //! Writes date to stream
+ void write(std::ostream& ostr);
+ //! Compares two dates
+ int compare(const Date& other) const;
+};
+
+//! Reads date from stream with >> operator
+std::istream& operator>>(std::istream& istr, Date& dt);
+//! Writes date to stream with << operator
+std::ostream& operator<<(std::ostream& ostr, const Date& dt);
+
+#endif