Mercurial > minori
view include/core/date.h @ 137:69db40272acd
dep/animia: [WIP] huge refactor
this WILL NOT compile, because lots of code has been changed
and every API in the original codebase has been removed.
note that this api setup is not exactly permanent...
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Fri, 10 Nov 2023 13:52:47 -0500 |
parents | c69230dc2b5d |
children | f88eda79c60a |
line wrap: on
line source
#ifndef __core__date_h #define __core__date_h #include "json.h" #include <QDate> #include <cstdint> class Date { public: Date(); Date(unsigned int y); Date(unsigned int y, unsigned int m, unsigned int d); Date(const QDate& date); bool IsValid() const; void SetYear(unsigned int y); void SetMonth(unsigned int m); void SetDay(unsigned int d); void VoidYear(); void VoidMonth(); void VoidDay(); unsigned int GetYear() const; unsigned int GetMonth() const; unsigned int GetDay() const; QDate GetAsQDate() const; nlohmann::json GetAsAniListJson() const; bool operator<(const Date& other) const; bool operator>(const Date& other) const; bool operator<=(const Date& other) const; bool operator>=(const Date& other) const; private: /* note: it might be worth it to change these all to int, as large bit precisions aren't exactly useful here... */ std::shared_ptr<unsigned int> year; std::shared_ptr<unsigned int> month; std::shared_ptr<unsigned int> day; }; #endif // __core__date_h