41 #ifndef __OPENFLUID_CORE_DATETIME_HPP__ 42 #define __OPENFLUID_CORE_DATETIME_HPP__ 45 #include <sys/types.h> 159 void updateYMDHMSFromRawTime();
161 void updateRawTimeFromYMDHMS();
174 DateTime(
int Year,
int Month,
int Day,
int Hour,
int Minute,
int Second);
179 DateTime(RawTime_t SecondsSince0000);
189 bool set(
int Year,
int Month,
int Day,
int Hour,
int Minute,
int Second);
195 void set(
const RawTime_t& SecondsSince0000);
201 bool setFromISOString(
const std::string& DateTimeStr);
207 bool setFromString(
const std::string& DateTimeStr,
const std::string& FormatStr);
215 {
return (m_TM.tm_year+1900); };
222 {
return (m_TM.tm_mon+1); };
229 {
return m_TM.tm_mday; };
236 {
return m_TM.tm_hour; };
243 {
return m_TM.tm_min; };
250 {
return m_TM.tm_sec; };
256 RawTime_t getRawTime()
const;
263 std::string getAsISOString()
const;
270 std::string getAsString(std::string Format)
const;
277 std::string getDateAsISOString()
const;
283 std::string getTimeAsISOString()
const;
289 void addSeconds(
const RawTime_t& Seconds);
294 void subtractSeconds(
const RawTime_t& Seconds);
299 RawTime_t diffInSeconds(
const DateTime& DT)
const;
320 bool operator ==(
const DateTime &Right)
const;
325 bool operator !=(
const DateTime &Right)
const;
330 bool operator >(
const DateTime &Right)
const;
335 bool operator >=(
const DateTime &Right)
const;
340 bool operator <(
const DateTime &Right)
const;
345 bool operator <=(
const DateTime &Right)
const;
350 DateTime operator +(
const RawTime_t& Seconds)
const;
355 DateTime operator -(
const RawTime_t& Seconds)
const;
360 static inline RawTime_t
Minute() {
return 60; };
365 static inline RawTime_t
Minutes(
int N) {
return (60*N); };
370 static inline RawTime_t
Hour() {
return 3600; };
375 static inline RawTime_t
Hours(
int N) {
return (3600*N); };
380 static inline RawTime_t
Day() {
return 86400; };
385 static inline RawTime_t
Days(
int N) {
return (86400*N); };
390 static inline RawTime_t
Week() {
return 604800; };
395 static inline RawTime_t
Weeks(
int N) {
return (604800*N); };
400 static bool isLeapYear(
int Year);
405 static int getNumOfDaysInMonth(
int Year,
int Month);
410 static bool isValidDateTime(
int Year,
int Month,
int Day,
int Hour,
int Minute,
int Second);
415 bool isSameDate(
const DateTime& DT)
const;
420 bool isSameTime(
const DateTime& DT)
const;
static RawTime_t Hour()
Definition: DateTime.hpp:370
unsigned long long Duration_t
Definition: DateTime.hpp:68
static RawTime_t Minute()
Definition: DateTime.hpp:360
int getMinute() const
Definition: DateTime.hpp:242
static RawTime_t Minutes(int N)
Definition: DateTime.hpp:365
int getHour() const
Definition: DateTime.hpp:235
static RawTime_t Hours(int N)
Definition: DateTime.hpp:375
static RawTime_t Days(int N)
Definition: DateTime.hpp:385
unsigned long long RawTime_t
Definition: DateTime.hpp:57
int getMonth() const
Definition: DateTime.hpp:221
int getYear() const
Definition: DateTime.hpp:214
int getDay() const
Definition: DateTime.hpp:228
static RawTime_t Weeks(int N)
Definition: DateTime.hpp:395
static RawTime_t Day()
Definition: DateTime.hpp:380
static RawTime_t Week()
Definition: DateTime.hpp:390
Definition: ApplicationException.hpp:47
#define OPENFLUID_API
Definition: dllexport.hpp:87
unsigned long long TimeIndex_t
Definition: DateTime.hpp:62
int getSecond() const
Definition: DateTime.hpp:249
Class for management of date and time information.
Definition: DateTime.hpp:132