From 24bdf39e6c21ab846f6c86803761d78a094e05c0 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 26 May 2022 20:31:26 +0300 Subject: Added files from project 1 (mirror) --- .../Project 1/src/Generic/Date/Date.h | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h (limited to 'Year 1/Object-oriented Programming/Project 1/src/Generic/Date/Date.h') 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 +#include +#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 -- cgit v1.3.1-23-gd82d