48 friend class DateFormatter;
113 Date(
const std::tm*
const time);
120 Date(
const std::timespec& time);
138 template<
typename R,
typename P>
139 void initialize(
const std::chrono::duration<R,P>& duration)
noexcept {
140 _nanoseconds =
static_cast<uint16_t
>(std::chrono::duration_cast<std::chrono::nanoseconds>(duration).count() % 1000);
141 _microseconds =
static_cast<uint16_t
>(std::chrono::duration_cast<std::chrono::microseconds>(duration).count() % 1000);
142 _milliseconds =
static_cast<uint16_t
>(std::chrono::duration_cast<std::chrono::milliseconds>(duration).count() % 1000);
150 void initialize(
const std::tm*
const time);
155 void computeTimestamp();
160 void computeTm(std::tm& time)
const;
247 operator std::time_t() const noexcept;
254 operator std::
tm() const noexcept;
261 operator std::
timespec() const noexcept;
266 inline
void Date::computeTm(std::
tm& time)
const {
272 time.tm_year =
_years - 1900;
311 inline Date::operator std::time_t() const noexcept {
314 return std::mktime(&time);
317 inline Date::operator std::tm() const noexcept {
324 inline Date::operator std::timespec() const noexcept {
328 time.tv_sec = std::mktime(&cal);
operator std::tm() const noexcept
Definition date.hpp:317
bool equals(const Date &date) const noexcept
Definition date.hpp:283
bool operator>(const Date &date) const noexcept
Definition date.hpp:287
uint16_t _mdays
Definition date.hpp:68
Date(const std::time_t &time)
Date(const std::tm *const time)
int32_t _years
Definition date.hpp:59
bool operator!=(const Date &date) const noexcept
Definition date.hpp:307
uint16_t _nanoseconds
Definition date.hpp:89
bool before(const Date &date) const noexcept
Definition date.hpp:279
bool operator>=(const Date &date) const noexcept
Definition date.hpp:291
uint16_t _ydays
Definition date.hpp:65
std::int64_t _timestamp
Definition date.hpp:56
uint16_t _minutes
Definition date.hpp:77
uint16_t _seconds
Definition date.hpp:80
uint16_t _microseconds
Definition date.hpp:86
bool operator==(const Date &date) const noexcept
Definition date.hpp:303
uint16_t _months
Definition date.hpp:62
uint16_t _wdays
Definition date.hpp:71
bool operator<(const Date &date) const noexcept
Definition date.hpp:295
bool after(const Date &date) const noexcept
Definition date.hpp:275
bool operator<=(const Date &date) const noexcept
Definition date.hpp:299
uint16_t _milliseconds
Definition date.hpp:83
uint16_t _hours
Definition date.hpp:74
static std::mutex _mutex
Definition date.hpp:53
Date(const std::timespec &time)
operator std::timespec() const noexcept
Definition date.hpp:324