26 #ifndef _QORE_DATETIMENODE_H
28 #define _QORE_DATETIMENODE_H
30 #include <qore/AbstractQoreNode.h>
31 #include <qore/DateTime.h>
33 class qore_date_private;
42 DLLLOCAL DateTimeNode& operator=(
const DateTimeNode &);
49 DLLEXPORT
virtual bool getAsBoolImpl()
const;
55 DLLEXPORT
virtual int getAsIntImpl()
const;
61 DLLEXPORT
virtual int64 getAsBigIntImpl()
const;
67 DLLEXPORT
virtual double getAsFloatImpl()
const;
70 DLLLOCAL DateTimeNode(qore_date_private *n_priv);
81 DLLEXPORT DateTimeNode(
bool r =
false);
94 DLLEXPORT DateTimeNode(
int n_year,
int n_month,
int n_day,
int n_hour = 0,
int n_minute = 0,
int n_second = 0,
short n_ms = 0,
bool n_relative =
false);
100 DLLEXPORT DateTimeNode(int64 seconds);
107 DLLEXPORT DateTimeNode(int64 seconds,
int ms);
112 DLLEXPORT DateTimeNode(
const char *date);
118 DLLEXPORT DateTimeNode(
const AbstractQoreZoneInfo *zone,
const char *date);
124 DLLEXPORT DateTimeNode(
struct tm *tms);
127 DLLEXPORT DateTimeNode(
const DateTimeNode &dt);
130 DLLEXPORT DateTimeNode(
const DateTime &dt);
198 DLLEXPORT DateTimeNode *
copy()
const;
204 DLLEXPORT DateTimeNode *
add(
const DateTime *dt)
const;
236 DLLEXPORT
static DateTimeNode *
makeAbsolute(
const AbstractQoreZoneInfo *n_zone,
int n_year,
int n_month,
int n_day,
int n_hour = 0,
int n_minute = 0,
int n_second = 0,
int n_us = 0);
244 DLLEXPORT
static DateTimeNode *
makeAbsolute(
const AbstractQoreZoneInfo *zone, int64 seconds,
int us = 0);
252 DLLEXPORT
static DateTimeNode *
makeAbsoluteLocal(
const AbstractQoreZoneInfo *zone, int64 seconds,
int us = 0);
255 DLLEXPORT
static DateTimeNode *
makeRelative(
int n_year,
int n_month,
int n_day,
int n_hour = 0,
int n_minute = 0,
int n_second = 0,
int n_us = 0);
272 DLLLOCAL DateTimeValueHelper& operator=(
const DateTimeValueHelper&);
273 DLLLOCAL
void *
operator new(size_t);
298 DLLLOCAL
const DateTime *operator->() {
return dt; }
299 DLLLOCAL
const DateTime *operator*() {
return dt; }
312 DLLLOCAL DateTimeNodeValueHelper& operator=(
const DateTimeNodeValueHelper&);
313 DLLLOCAL
void *
operator new(size_t);
342 DLLLOCAL
const DateTimeNode *operator->() {
return dt; }