13 #include <utility/dllexport.h>
14 #include <rtti/typeinfo.h>
27 using Hours = std::chrono::hours;
81 NAPAPI
SystemTimeStamp createTimestamp(
int year,
int month,
int day,
int hour,
int minute,
int second=0,
int millisecond=0,
bool daylightSaving =
true);
121 NAPAPI
EDay toDay(
const std::string&
string);
225 int getDayInTheMonth()
const;
230 int getDayInTheYear()
const;
245 int getMinute()
const;
250 int getSecond()
const;
255 int getMilliSecond()
const;
260 bool isDaylightSaving()
const;
289 ConversionMode mMode = ConversionMode::Local;
340 static bool exists(
int year,
EMonth month,
int day);
377 TimeStamp(int64_t timeStamp) : mTimeStamp(timeStamp) { }
399 inline bool isValid()
const {
return mTimeStamp >= 0; }
401 int64_t mTimeStamp = -1;
413 struct hash<
nap::EDay>
415 size_t operator()(
const nap::EDay& v)
const
417 return std::hash<int>()(
static_cast<int>(v));
426 return std::hash<int>()(
static_cast<int>(v));
TimeStamp(int64_t timeStamp)
Definition: datetime.h:377
NAPAPI std::string toString(EDay day)
std::chrono::milliseconds Milliseconds
Milliseconds type definition.
Definition: datetime.h:22
std::chrono::time_point< HighResolutionClock > HighResTimeStamp
Point in time associated with the HighResolutionClock.
Definition: datetime.h:29
std::chrono::minutes Minutes
Minutes type definition.
Definition: datetime.h:26
bool operator<(const DateTime &other) const
Definition: datetime.h:279
std::chrono::seconds Seconds
Seconds type definition.
Definition: datetime.h:25
std::chrono::high_resolution_clock HighResolutionClock
High resolution clock, works with the highest possible precision. Can't convert time points in to day...
Definition: datetime.h:20
std::chrono::time_point< SystemClock > SystemTimeStamp
Point in time associated with the SystemClock.
Definition: datetime.h:28
std::chrono::system_clock SystemClock
System clock, able to convert time points in to days, seconds etc.
Definition: datetime.h:19
NAPAPI SystemTimeStamp createTimestamp(int year, int month, int day, int hour, int minute, int second=0, int millisecond=0, bool daylightSaving=true)
NAPAPI SystemTimeStamp getCurrentTime()
Definition: datetime.h:173
bool operator>=(const DateTime &other) const
Definition: datetime.h:283
Definition: datetime.h:364
EMonth
Definition: datetime.h:132
Definition: datetime.h:302
ConversionMode
Definition: datetime.h:180
std::chrono::nanoseconds NanoSeconds
Nanoseconds type definition.
Definition: datetime.h:24
NAPAPI std::string timeFormat(const SystemTimeStamp &time, const std::string &format="%Y-%m-%d %H:%M:%S.%ms")
const SystemTimeStamp & getTimeStamp() const
Definition: datetime.h:276
std::chrono::microseconds MicroSeconds
Microseconds type definition.
Definition: datetime.h:23
NAPAPI EDay toDay(const std::string &string)
NAPAPI DateTime getCurrentDateTime()
EDay
Definition: datetime.h:92
const NAPAPI std::array< EDay, 7 > & getDaysInWeek()
Definition: templateapp.h:17
bool isValid() const
Definition: datetime.h:399
std::chrono::hours Hours
Hours type definition.
Definition: datetime.h:27
bool operator!=(const DateTime &other) const
Definition: datetime.h:281
NAPAPI EMonth toMonth(const std::string &string)
bool operator==(const DateTime &other) const
Definition: datetime.h:280
std::chrono::steady_clock SteadyClock
Monotonic clock. The time points of this clock cannot decrease as time moves forward and the time bet...
Definition: datetime.h:21
bool operator<=(const DateTime &other) const
Definition: datetime.h:282
std::chrono::time_point< SteadyClock > SteadyTimeStamp
Point in time associated with the SteadyClock.
Definition: datetime.h:30