41 #ifndef __OPENFLUID_CORE_DATETIME_HPP__ 
   42 #define __OPENFLUID_CORE_DATETIME_HPP__ 
   45 #include <sys/types.h> 
   52 namespace openfluid { 
namespace core {
 
  159     void updateYMDHMSFromRawTime();
 
  161     void updateRawTimeFromYMDHMS();
 
  174     DateTime(
int Year, 
int Month, 
int Day, 
int Hour, 
int Minute, 
int Second);
 
  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; };
 
  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);
 
  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;
 
  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 Day()
Definition: DateTime.hpp:380
static RawTime_t Week()
Definition: DateTime.hpp:390
static RawTime_t Minutes(int N)
Definition: DateTime.hpp:365
Class for management of date and time information. 
Definition: DateTime.hpp:132
static RawTime_t Minute()
Definition: DateTime.hpp:360
unsigned long long Duration_t
Definition: DateTime.hpp:68
static RawTime_t Days(int N)
Definition: DateTime.hpp:385
int getYear() const 
Definition: DateTime.hpp:214
static RawTime_t Hour()
Definition: DateTime.hpp:370
static RawTime_t Hours(int N)
Definition: DateTime.hpp:375
int getMonth() const 
Definition: DateTime.hpp:221
int getDay() const 
Definition: DateTime.hpp:228
unsigned long long RawTime_t
Definition: DateTime.hpp:57
static RawTime_t Weeks(int N)
Definition: DateTime.hpp:395
int getHour() const 
Definition: DateTime.hpp:235
int getSecond() const 
Definition: DateTime.hpp:249
int getMinute() const 
Definition: DateTime.hpp:242
#define OPENFLUID_API
Definition: dllexport.hpp:87
unsigned long long TimeIndex_t
Definition: DateTime.hpp:62