1#ifndef IV_SRC_CORE_TIMESTAMP_HPP_
2#define IV_SRC_CORE_TIMESTAMP_HPP_
24 :
m_timestamp(std::chrono::time_point<std::chrono::system_clock>(std::chrono::milliseconds(milliseconds)))
28 explicit Timestamp(
const std::chrono::time_point<std::chrono::system_clock> ×tamp) :
m_timestamp(timestamp)
108 void setTime(
const std::chrono::time_point<std::chrono::system_clock> time = std::chrono::system_clock::now())
115 m_timestamp = std::chrono::time_point<std::chrono::system_clock>(std::chrono::milliseconds(milliseconds));
119 void getLomsTime(uint16_t &numDaysSince1984, uint32_t &milliseconds)
const;
139 std::chrono::duration_cast<std::chrono::milliseconds>(
m_timestamp.time_since_epoch()).count());
144 return std::chrono::duration_cast<std::chrono::seconds>(
m_timestamp.time_since_epoch()).count();
149 const std::time_t time = std::chrono::system_clock::to_time_t(
m_timestamp);
155 gmtime_r(&time, &timeInfo);
159 localtime_r(&time, &timeInfo);
167 dt.
year =
static_cast<uint16_t
>(timeInfo.tm_year + 1900);
168 dt.month =
static_cast<uint16_t
>(timeInfo.tm_mon + 1);
169 dt.day =
static_cast<uint16_t
>(timeInfo.tm_mday);
170 dt.hour =
static_cast<uint16_t
>(timeInfo.tm_hour);
171 dt.minute =
static_cast<uint16_t
>(timeInfo.tm_min);
172 dt.second =
static_cast<uint16_t
>(timeInfo.tm_sec);
Definition Timestamp.hpp:17
iv::types::milliseconds inMilliseconds() const
Definition Timestamp.hpp:136
bool operator==(const Timestamp &other) const
Definition Timestamp.hpp:78
Timestamp & operator=(Timestamp &&other) noexcept
Definition Timestamp.hpp:48
iv::DateTime getDateTime(const iv::eTimeZone timeZone=iv::eTimeZone::Localtime) const
Definition Timestamp.hpp:147
Timestamp & setLomsTime(uint16_t numDaysSince1984, uint32_t milliseconds)
Definition Timestamp.cpp:8
void now()
Definition Timestamp.hpp:121
void getLomsTime(uint16_t &numDaysSince1984, uint32_t &milliseconds) const
Definition Timestamp.cpp:22
Timestamp()
Definition Timestamp.hpp:19
int64_t inSeconds() const
Definition Timestamp.hpp:142
std::chrono::time_point< std::chrono::system_clock > m_timestamp
Definition Timestamp.hpp:178
Timestamp operator+(const iv::types::timestamp &milliseconds) const
Definition Timestamp.hpp:98
bool operator<(const Timestamp &other) const
Definition Timestamp.hpp:58
bool operator>(const Timestamp &other) const
Definition Timestamp.hpp:63
Timestamp operator+(const std::chrono::seconds &seconds) const
Definition Timestamp.hpp:88
Timestamp(const Timestamp &other)=default
Timestamp & operator=(const Timestamp &other)
Definition Timestamp.hpp:38
Timestamp(const iv::types::timestamp milliseconds)
Definition Timestamp.hpp:23
bool operator!=(const Timestamp &other) const
Definition Timestamp.hpp:83
Timestamp operator-(const std::chrono::seconds &seconds) const
Definition Timestamp.hpp:93
Timestamp operator-(const iv::types::timestamp &milliseconds) const
Definition Timestamp.hpp:103
void setTime(const std::chrono::time_point< std::chrono::system_clock > time=std::chrono::system_clock::now())
Definition Timestamp.hpp:108
void setTime(const iv::types::timestamp milliseconds)
Definition Timestamp.hpp:113
bool operator>=(const Timestamp &other) const
Definition Timestamp.hpp:73
Timestamp(Timestamp &&other) noexcept
Definition Timestamp.hpp:34
void roundToNextMinute()
Definition Timestamp.hpp:126
Timestamp(const std::chrono::time_point< std::chrono::system_clock > ×tamp)
Definition Timestamp.hpp:28
bool operator<=(const Timestamp &other) const
Definition Timestamp.hpp:68
static constexpr iv::types::timestamp MillisecondsInMinutes
Definition constants.hpp:36
Definition GmtZones.hpp:11
uint64_t timestamp
Definition types.hpp:21
uint64_t milliseconds
Definition types.hpp:22
eTimeZone
Definition enums.hpp:177
Definition structs.hpp:15
std::uint16_t year
Definition structs.hpp:16