diff include/core/date.h @ 258:862d0d8619f6

*: HUUUGE changes animia has been renamed to animone, so instead of thinking of a health condition, you think of a beautiful flower :) I've also edited some of the code for animone, but I have no idea if it even works or not because I don't have a mac or windows machine lying around. whoops! ... anyway, all of the changes divergent from Anisthesia are now licensed under BSD. it's possible that I could even rewrite most of the code to where I don't even have to keep the MIT license, but that's thinking too far into the future I've been slacking off on implementing the anime seasons page, mostly out of laziness. I think I'd have to create another db file specifically for the seasons anyway, this code is being pushed *primarily* because the hard drive it's on is failing! yay :)
author Paper <paper@paper.us.eu.org>
date Mon, 01 Apr 2024 02:43:44 -0400
parents c4ca035c565d
children 3ec7804abf17
line wrap: on
line diff
--- a/include/core/date.h	Sun Feb 18 16:02:14 2024 -0500
+++ b/include/core/date.h	Mon Apr 01 02:43:44 2024 -0400
@@ -8,29 +8,46 @@
 class QDate;
 
 class Date {
-	public:
-		Date();
-		Date(unsigned int y);
-		Date(unsigned int y, unsigned int m, unsigned int d);
-		Date(const QDate& date);
-		Date(const nlohmann::json& json);
-		bool IsValid() const;
-		void SetYear(unsigned int y);
-		void SetMonth(unsigned int m);
-		void SetDay(unsigned int d);
-		void VoidYear();
-		void VoidMonth();
-		void VoidDay();
-		std::optional<unsigned int> GetYear() const;
-		std::optional<unsigned int> GetMonth() const;
-		std::optional<unsigned int> GetDay() const;
-		QDate GetAsQDate() const;
-		nlohmann::json GetAsAniListJson() const;
+public:
+	using Year = unsigned int;
+	using Day = unsigned char;
+	enum class Month {
+		Jan = 0,
+		Feb,
+		Mar,
+		Apr,
+		May,
+		Jun,
+		Jul,
+		Aug,
+		Sep,
+		Oct,
+		Nov,
+		Dec
+	};
 
-	private:
-		std::optional<unsigned int> year;
-		std::optional<unsigned int> month;
-		std::optional<unsigned int> day;
+	Date();
+	Date(Year y);
+	Date(Year y, Month m, Day d);
+	Date(const QDate& date);
+	Date(const nlohmann::json& json);
+	bool IsValid() const;
+	void SetYear(Year y);
+	void SetMonth(Month m);
+	void SetDay(Day d);
+	void VoidYear();
+	void VoidMonth();
+	void VoidDay();
+	std::optional<Year> GetYear() const;
+	std::optional<Month> GetMonth() const;
+	std::optional<Day> GetDay() const;
+	QDate GetAsQDate() const;
+	nlohmann::json GetAsAniListJson() const;
+
+private:
+	std::optional<Year> year;
+	std::optional<Month> month;
+	std::optional<Day> day;
 };
 
 #endif // __core__date_h