Dev Essential
Loading...
Searching...
No Matches
datetime.h
Go to the documentation of this file.
1
15
16#ifndef _A_UTILS_UTIL_DATETIME_DATETIME_HEADER_INCLUDED_
17#define _A_UTILS_UTIL_DATETIME_DATETIME_HEADER_INCLUDED_
18
19#include <a_util/base/types.h> //timestamp_t
20
21#include <string> //std::string
22
23namespace a_util {
24namespace datetime {
29class Date {
30public:
33
40 Date(int year, int month, int day);
41
48 void set(int year, int month, int day);
49
62 bool set(const std::string& date);
63
68 void setDay(int day);
69
74 int getDay() const;
75
80 void setMonth(int month);
81
86 int getMonth() const;
87
92 void setYear(int year);
93
98 int getYear() const;
99
112 std::string format(const std::string& format_str) const;
113
114private:
115 int _day;
116 int _month;
117 int _year;
118};
119
126bool operator==(const Date& lhs, const Date& rhs);
127
134bool operator!=(const Date& lhs, const Date& rhs);
135
141
147
152class Time {
153public:
156
164 Time(int hour, int minute, int second, int microsecond = 0);
165
173 void set(int hour, int minute, int second, int microsecond = 0);
174
187 bool set(const std::string& time);
188
193 void setHour(int hour);
194
199 int getHour() const;
200
205 void setMinute(int minute);
206
211 int getMinute() const;
212
217 void setSecond(int second);
218
223 int getSecond() const;
224
229 void setMicrosecond(int microsecond);
230
235 int getMicrosecond() const;
236
244 std::string format(const std::string& format_str) const;
245
246private:
247 int _hour;
248 int _minute;
249 int _second;
250 int _microsecond;
251};
252
259bool operator==(const Time& lhs, const Time& rhs);
260
267bool operator!=(const Time& lhs, const Time& rhs);
268
274
280
304
306class DateTime : public Date, public Time {
307public:
310
321 DateTime(int year, int month, int day, int hour, int minute, int second, int microsecond = 0);
322
333 void set(int year, int month, int day, int hour, int minute, int second, int microsecond = 0);
334
359 void set(timestamp_t timestamp,
360 TimestampReference timestampReference =
362
387
425#ifdef _WIN32
439#else
445#endif // _WIN32
452 std::string format(const std::string& format_str) const;
453
475 bool set(const std::string& format_str, const std::string& date_time);
476};
477
484bool operator==(const DateTime& lhs, const DateTime& rhs);
485
492bool operator!=(const DateTime& lhs, const DateTime& rhs);
493
499
505
506} // namespace datetime
507} // namespace a_util
508
509#endif // _A_UTILS_UTIL_DATETIME_DATETIME_HEADER_INCLUDED_
DateTime class representing both Date and Time.
Definition datetime.h:306
timestamp_t toTimestamp(TimestampReference timestampReference=TimestampReference::MicroSecondsSinceJulianDateOrigin) const
bool set(const std::string &format_str, const std::string &date_time)
void set(int year, int month, int day, int hour, int minute, int second, int microsecond=0)
void set(timestamp_t timestamp, TimestampReference timestampReference=TimestampReference::MicroSecondsSinceJulianDateOrigin)
std::string format(const std::string &format_str) const
DateTime(int year, int month, int day, int hour, int minute, int second, int microsecond=0)
DateTime()
Default constructor - see Date and Time constructors.
Definition datetime.h:29
void setYear(int year)
Date(int year, int month, int day)
std::string format(const std::string &format_str) const
bool set(const std::string &date)
void setDay(int day)
void setMonth(int month)
Date()
Default constructor - initializes the date to 00.00.0000.
void set(int year, int month, int day)
Definition datetime.h:152
std::string format(const std::string &format_str) const
void setMicrosecond(int microsecond)
Time(int hour, int minute, int second, int microsecond=0)
bool set(const std::string &time)
void setMinute(int minute)
int getMicrosecond() const
void set(int hour, int minute, int second, int microsecond=0)
void setSecond(int second)
void setHour(int hour)
Time()
Default constructor - initializes the time to 00:00:00,0.
std::int64_t timestamp_t
Type of a timestamp value. If not otherwise stated, always in microseconds.
Definition types.h:31
Serves as component for date and time handling.
Definition datetime.h:20
DateTime getCurrentSystemDateTime()
bool operator==(const Date &lhs, const Date &rhs)
Time getCurrentSystemTime()
Date getCurrentLocalDate()
DateTime getCurrentLocalDateTime()
Time getCurrentLocalTime()
TimestampReference
Definition datetime.h:292
@ MicroSecondsSinceUnixTimeOrigin
Definition datetime.h:302
@ MicroSecondsSinceJulianDateOrigin
Definition datetime.h:297
Date getCurrentSystemDate()
bool operator!=(const Date &lhs, const Date &rhs)
Serves as the root component, with common functionality documented in core functionality.
Definition base.h:24