Qore Programming Language  0.9.0
DateTimeNode Class Reference

Qore's parse tree/value type for date-time values, reference-counted, dynamically-allocated only. More...

#include <DateTimeNode.h>

Inheritance diagram for DateTimeNode:
Collaboration diagram for DateTimeNode:

Public Member Methods

DLLEXPORT DateTimeNode (bool r=false)
 constructor for an empty object More...
 
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)
 constructor for setting all parameters More...
 
DLLEXPORT DateTimeNode (int64 seconds)
 constructor for setting an absolute date based on the number of seconds from January 1, 1970 More...
 
DLLEXPORT DateTimeNode (int64 seconds, int ms)
 constructor for setting an absolute date based on the number of seconds from January 1, 1970 (plus milliseconds) More...
 
DLLEXPORT DateTimeNode (const AbstractQoreZoneInfo *zone, const QoreValue v)
 constructor for creating an absolute date from a value representing a number of seconds More...
 
DLLEXPORT DateTimeNode (const QoreValue v)
 constructor for creating a relative date from a value representing a number of seconds More...
 
DLLEXPORT DateTimeNode (const char *date)
 constructor for setting the date from a string with a flexible format, silently accepts invalid date strings More...
 
DLLEXPORT DateTimeNode (const char *date, ExceptionSink *xsink)
 constructor for setting the date from a string with a flexible format, throws a Qore-language exception if the date string is invalid More...
 
DLLEXPORT DateTimeNode (const AbstractQoreZoneInfo *zone, const char *date)
 constructor for setting the date from a string with a flexible format More...
 
DLLEXPORT DateTimeNode (hashdecl tm *tms)
 constructor for setting an absolute date based on a "hashdecl tm" More...
 
DLLEXPORT DateTimeNode (const DateTimeNode &dt)
 copy constructor
 
DLLEXPORT DateTimeNode (const DateTime &dt)
 constructor to set the date from a DateTime value
 
DLLEXPORT DateTimeNodeadd (const DateTime *dt) const
 adds a DateTime value to the current value and returns the new value, the caller owns the pointer's reference count More...
 
DLLEXPORT DateTimeNodeadd (const DateTime &dt) const
 adds a DateTime value to the current value and returns the new value, the caller owns the pointer's reference count More...
 
DLLEXPORT DateTimeNodecopy () const
 returns a copy of the DateTimeNode, the caller owns the pointer's reference count More...
 
virtual DLLEXPORT QoreStringgetAsString (bool &del, int foff, ExceptionSink *xsink) const
 returns the date/time value as a formatted string for n and N printf formatting, del is set to true More...
 
virtual DLLEXPORT int getAsString (QoreString &str, int foff, ExceptionSink *xsink) const
 concatenates a string representation of the date/time value (designed for n and N printf formatting) to a QoreString reference More...
 
virtual DLLEXPORT DateTimegetDateTimeRepresentation (bool &del) const
 returns "this" as a DateTime, del is set to false More...
 
virtual DLLEXPORT void getDateTimeRepresentation (DateTime &dt) const
 assigns this date/time representation to the passed DateTime reference More...
 
virtual DLLEXPORT QoreStringgetStringRepresentation (bool &del) const
 returns a string in the format YYYYMMDDHHmmSS, del is set to true More...
 
virtual DLLEXPORT void getStringRepresentation (QoreString &str) const
 concatentates the date/time value in the format YYYYMMDDHHmmDD to an existing QoreString reference More...
 
virtual DLLEXPORT const char * getTypeName () const
 returns the type name as a c string
 
virtual DLLEXPORT bool is_equal_hard (const AbstractQoreNode *v, ExceptionSink *xsink) const
 tests for equality ("deep compare" including all contained values for container types) without type conversions (hard compare) More...
 
virtual DLLEXPORT bool is_equal_soft (const AbstractQoreNode *v, ExceptionSink *xsink) const
 tests for equality with possible type conversion (soft compare) More...
 
virtual DLLEXPORT void parseInit (QoreValue &val, LocalVar *oflag, int pflag, int &lvids, const QoreTypeInfo *&typeInfo)
 returns the type information
 
virtual DLLEXPORT AbstractQoreNoderealCopy () const
 returns a copy of the object; the caller owns the reference count More...
 
DLLEXPORT DateTimeNoderefSelf () const
 returns this with an incremented ref count
 
DLLEXPORT DateTimeNodesubtractBy (const DateTime *dt) const
 subtracts a DateTime value from the current value and returns the new value, the caller owns the pointer's reference count More...
 
DLLEXPORT DateTimeNodesubtractBy (const DateTime &dt) const
 subtracts a DateTime value from the current value and returns the new value, the caller owns the pointer's reference count More...
 
DLLEXPORT DateTimeNodeunaryMinus () const
 returns the negative time from the current time
 
- Public Member Methods inherited from SimpleValueQoreNode
DLLLOCAL SimpleValueQoreNode (qore_type_t t, bool n_there_can_be_only_one=false)
 creates the object by assigning the type code and setting the "value" flag, unsetting the "needs_eval" flag, and setting "there_can_be_only_one"
 
- Public Member Methods inherited from SimpleQoreNode
DLLLOCAL SimpleQoreNode (qore_type_t t, bool n_value, bool n_needs_eval, bool n_there_can_be_only_one=false)
 constructor takes the type and value arguments
 
DLLLOCAL SimpleQoreNode (const SimpleQoreNode &v)
 copy constructor
 
DLLEXPORT void deref (ExceptionSink *xsink)
 decrements the reference count and deletes the object when references = 0 More...
 
SimpleQoreNodeoperator= (const SimpleQoreNode &)=delete
 this function is not implemented
 
- Public Member Methods inherited from AbstractQoreNode
DLLEXPORT AbstractQoreNode (qore_type_t t, bool n_value, bool n_needs_eval, bool n_there_can_be_only_one=false, bool n_custom_reference_handlers=false)
 constructor takes the type More...
 
DLLEXPORT AbstractQoreNode (const AbstractQoreNode &v)
 copy constructor
 
virtual DLLEXPORT void customDeref (ExceptionSink *xsink)
 
virtual DLLEXPORT void customRef () const
 special processing when the object's reference count transitions from 0-1 More...
 
DLLEXPORT void deref (ExceptionSink *xsink)
 decrements the reference count and calls derefImpl() if there_can_be_only_one is false, otherwise does nothing More...
 
virtual DLLEXPORT bool derefImpl (ExceptionSink *xsink)
 decrements the reference count More...
 
DLLEXPORT QoreValue eval (ExceptionSink *xsink) const
 evaluates the object and returns a value (or 0) More...
 
DLLEXPORT QoreValue eval (bool &needs_deref, ExceptionSink *xsink) const
 optionally evaluates the argument More...
 
DLLEXPORT int64 getAsBigInt () const
 returns the 64-bit integer value of the object More...
 
DLLEXPORT bool getAsBool () const
 returns the boolean value of the object More...
 
DLLEXPORT double getAsFloat () const
 returns the float value of the object More...
 
DLLEXPORT int getAsInt () const
 returns the integer value of the object More...
 
DLLLOCAL qore_type_t getType () const
 returns the data type More...
 
DLLLOCAL bool is_value () const
 returns true if the node represents a value More...
 
DLLLOCAL bool isReferenceCounted () const
 returns true if the object is reference-counted
 
DLLLOCAL bool needs_eval () const
 returns true if the object needs evaluation to return a value, false if not More...
 
DLLLOCAL AbstractQoreNodeoperator= (const AbstractQoreNode &)
 this function is not implemented; it is here as a private function in order to prohibit it from being used
 
DLLEXPORT void ref () const
 increments the reference count
 
DLLEXPORT AbstractQoreNoderefSelf () const
 returns "this" with an incremented reference count More...
 
- Public Member Methods inherited from QoreReferenceCounter
DLLEXPORT QoreReferenceCounter ()
 creates the reference counter object
 
DLLEXPORT QoreReferenceCounter (const QoreReferenceCounter &old)
 creates a new object with a reference count of 1 More...
 
DLLEXPORT ~QoreReferenceCounter ()
 destroys the reference counter object
 
DLLEXPORT bool is_unique () const
 returns true if the reference count is 1 More...
 
DLLEXPORT int reference_count () const
 gets the reference count More...
 
DLLEXPORT bool ROdereference () const
 atomically decrements the reference count More...
 
DLLEXPORT void ROreference () const
 atomically increments the reference count
 
- Public Member Methods inherited from DateTime
DLLEXPORT DateTime (bool r=false)
 constructor for an empty object More...
 
DLLEXPORT DateTime (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)
 constructor for setting all parameters More...
 
DLLEXPORT DateTime (int64 seconds)
 constructor for setting an absolute date based on the number of seconds from January 1, 1970 More...
 
DLLEXPORT DateTime (int64 seconds, int ms)
 constructor for setting an absolute date based on the number of seconds from January 1, 1970 (plus milliseconds) More...
 
DLLEXPORT DateTime (const AbstractQoreZoneInfo *zone, const QoreValue v)
 constructor for creating an absolute date from a value representing a number of seconds More...
 
DLLEXPORT DateTime (const QoreValue v)
 constructor for creating a relative date from a value representing a number of seconds More...
 
DLLEXPORT DateTime (const char *date)
 constructor for setting the date from a string More...
 
DLLEXPORT DateTime (const char *date, ExceptionSink *xsink)
 constructor for setting the date from a string with a flexible format, throws a Qore-language exception if the date string is invalid More...
 
DLLEXPORT DateTime (const AbstractQoreZoneInfo *zone, const char *date)
 constructor for setting the date from a string with a flexible format More...
 
DLLEXPORT DateTime (const hashdecl tm *tms)
 constructor for setting an absolute date based on a "hashdecl tm" More...
 
DLLEXPORT DateTime (const DateTime &dt)
 copy constructor
 
DLLEXPORT ~DateTime ()
 destroys the object and frees all memory
 
DLLEXPORT void addSecondsTo (int64 secs, int us=0)
 adds the given number of seconds (and microseconds) to the date/time value More...
 
DLLEXPORT void format (QoreString &str, const char *fmt) const
 formats the date/time value to a QoreString More...
 
DLLEXPORT int getDay () const
 returns the day portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
 
DLLEXPORT int getDayNumber () const
 returns the ordinal number of the day in the year for absolute dates, sometimes (mistakenly) referred to as the Julian date More...
 
DLLEXPORT int getDayOfWeek () const
 returns the day of week for the current date (0-6, Sun-Sat) More...
 
DLLEXPORT int64 getEpochMicrosecondsUTC () const
 gets the number of microseconds since January 1, 1970Z for the current date More...
 
DLLEXPORT int64 getEpochMillisecondsUTC () const
 gets the number of milliseconds since January 1, 1970Z for the current date More...
 
DLLEXPORT int64 getEpochSeconds () const
 gets the number of seconds since January 1, 1970 for the current date offset in local time More...
 
DLLEXPORT int64 getEpochSecondsUTC () const
 gets the number of seconds since January 1, 1970Z for the current date More...
 
DLLEXPORT int getHour () const
 returns the hour portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
 
DLLEXPORT void getInfo (const AbstractQoreZoneInfo *n_zone, qore_tm &info) const
 returns the broken-down time in the given time zone (n_zone = 0 means UTC)
 
DLLEXPORT void getInfo (qore_tm &info) const
 returns the broken-down time in the current time zone
 
DLLEXPORT void getISOWeek (int &year, int &week, int &day) const
 returns the ISO-8601 week information More...
 
DLLEXPORT int getMicrosecond () const
 returns the microsecond portion of the date-time value More...
 
DLLEXPORT int getMillisecond () const
 returns the microsecond portion of the date-time value divided by 1000 More...
 
DLLEXPORT int getMinute () const
 returns the minute portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
 
DLLEXPORT int getMonth () const
 returns the month portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
 
DLLEXPORT int64 getRelativeMicroseconds () const
 returns the difference as the number of microseconds between the date/time value and the local time at the moment of the call, for absolute date/time values; for relative date/time values, the duration is converted to microseconds and returned as an integer More...
 
DLLEXPORT int64 getRelativeMilliseconds () const
 returns the difference as the number of milliseconds between the date/time value and the local time at the moment of the call, for absolute date/time values; for relative date/time values, the duration is converted to milliseconds and returned as an integer More...
 
DLLEXPORT int64 getRelativeSeconds () const
 returns the difference as the number of seconds between the date/time value and the local time at the moment of the call for absolute date/time values; for relative date/time values, the duration is converted to seconds and returned as an integer More...
 
DLLEXPORT double getRelativeSecondsDouble () const
 returns the difference as the number of seconds between the date/time value and the local time at the moment of the call for absolute date/time values; for relative date/time values, the duration is converted to seconds and returned as a floating-point value with fractional seconds as digits to the right of the decimal point More...
 
DLLEXPORT int getSecond () const
 returns the second portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
 
DLLEXPORT void getTM (hashdecl tm *tms) const
 sets a "hashdecl tm" from the current date/time value for the time zone for the object; use DateTime::getInfo() instead
 
DLLEXPORT short getYear () const
 returns the year portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
 
DLLEXPORT const AbstractQoreZoneInfo * getZone () const
 gets the time zone for the object; returns 0 for relative date/time values
 
DLLEXPORT bool hasValue () const
 returns true if the object has a value, false if not (zero value = 1970-01-01Z for absolute times, or all relative components = 0)
 
DLLEXPORT bool isAbsolute () const
 returns true if the value is an absolute date-time value More...
 
DLLEXPORT bool isRelative () const
 returns true if the value is a relative date-time value More...
 
DLLEXPORT void setDate (int64 seconds)
 sets the absolute date value based on the number of seconds from January 1, 1970 More...
 
DLLEXPORT void setDate (int64 seconds, int ms)
 sets the absolute date value based on the number of seconds from January 1, 1970 UTC (plus milliseconds) More...
 
DLLEXPORT void setDate (const AbstractQoreZoneInfo *zone, int64 seconds, int us)
 sets the absolute date value based on the number of seconds from January 1, 1970 UTC (plus microseconds) More...
 
DLLEXPORT void setDate (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)
 sets the date to an absolute date/time as given
 
DLLEXPORT void setDate (const char *str)
 sets an absolute date value from a string with a flexible format More...
 
DLLEXPORT void setDate (const char *str, ExceptionSink *xsink)
 sets an absolute date value from a string with a flexible format More...
 
DLLEXPORT void setDate (const AbstractQoreZoneInfo *zone, const char *str)
 sets an absolute date value from a time zone pointer and a string with a flexible format More...
 
DLLEXPORT void setDate (const hashdecl tm *tms, short ms=0)
 sets the absolute date from a "hashdecl tm" pointer and millisecond value
 
DLLEXPORT void setDate (const DateTime &date)
 sets the date from a DateTime reference
 
DLLEXPORT void setLocalDate (const AbstractQoreZoneInfo *zone, int64 seconds, int us)
 sets the absolute date value based on the number of seconds from January 1, 1970 in the given time zone (plus microseconds) More...
 
DLLEXPORT void setNow ()
 sets the current date and time in the current time zone; current contents are overwritten More...
 
DLLEXPORT void setNow (const AbstractQoreZoneInfo *zone)
 sets the current date and time in the given time zone; current contents are overwritten More...
 
DLLEXPORT void setRelativeDate (const char *str)
 sets a relative date from a string in the format YYYYMMDDHHmmSS
 
DLLEXPORT void setRelativeDateSeconds (int64 s, int us=0)
 set the object to a relative date/time value as given in seconds and optionally microseconds
 
DLLEXPORT void setTime (int h, int m, int s, short ms=0)
 sets the time from hours, minutes, seconds, and milliseconds More...
 
DLLEXPORT void setZone (const AbstractQoreZoneInfo *n_zone)
 changes the time zone for the time without updating the epoch offset
 
DLLEXPORT DateTimeunaryMinus () const
 returns the negative time from the current time
 
DLLEXPORT void unaryMinusInPlace ()
 converts the current value to the negative of itself
 

Static Public Member Methods

static DLLEXPORT DateTimeNodegetDateFromISOWeek (int year, int week, int day, ExceptionSink *xsink)
 returns a DateTimeNode value as generated from the ISO-8601 week information More...
 
static DLLLOCAL qore_type_t getStaticTypeCode ()
 returns the type code (useful in templates)
 
static DLLLOCAL const char * getStaticTypeName ()
 returns the type name (useful in templates)
 
static DLLEXPORT DateTimeNodemakeAbsolute (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)
 static "constructor" to create an absolute time, including microseconds
 
static DLLEXPORT DateTimeNodemakeAbsolute (const AbstractQoreZoneInfo *n_zone, int n_year, int n_month, int n_day, int n_hour, int n_minute, int n_second, int n_us, ExceptionSink *xsink)
 static "constructor" to create an absolute time, including microseconds, throws an exception with invalid date/time components More...
 
static DLLEXPORT DateTimeNodemakeAbsolute (const AbstractQoreZoneInfo *zone, int64 seconds, int us=0)
 static "constructor" to create an absolute time as an offset from the epoch, including microseconds More...
 
static DLLEXPORT DateTimeNodemakeAbsoluteLocal (const AbstractQoreZoneInfo *zone, int64 seconds, int us=0)
 static "constructor" to create an absolute time as an offset from the given time zone's epoch, including microseconds More...
 
static DLLEXPORT DateTimeNodemakeRelative (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)
 static "constructor" to create a relative time, including microseconds
 
static DLLEXPORT DateTimeNodemakeRelativeFromSeconds (int64 n_second, int n_us=0)
 static "constructor" to create a relative time, including microseconds
 
- Static Public Member Methods inherited from DateTime
static DLLEXPORT int compareDates (const DateTime *left, const DateTime *right)
 returns -1, 0, or 1 if the left date is less than, equal, or greater than the right date
 
static DLLEXPORT DateTimegetDateFromISOWeek (int year, int week, int day, ExceptionSink *xsink)
 returns a DateTime value from ISO-8601 week and day offsets More...
 
static DLLEXPORT int getLastDayOfMonth (int month, int year)
 returns the number of days in the month given according to a proleptic gregorian calendar
 
static DLLEXPORT bool isLeapYear (int year)
 returns true if the year passed is a leap year according to a proleptic gregorian calendar
 
static DLLEXPORT DateTimemakeAbsolute (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)
 static "constructor" to create an absolute time, including microseconds
 
static DLLEXPORT DateTimemakeAbsolute (const AbstractQoreZoneInfo *zone, int64 seconds, int us=0)
 static "constructor" to create an absolute time as an offset from the epoch, including microseconds More...
 
static DLLEXPORT DateTimemakeAbsoluteLocal (const AbstractQoreZoneInfo *zone, int64 seconds, int us=0)
 static "constructor" to create an absolute time as an offset from the given time zone's epoch, including microseconds More...
 
static DLLEXPORT DateTimemakeRelative (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)
 static "constructor" to create a relative time, including microseconds
 
static DLLEXPORT DateTimemakeRelativeFromSeconds (int64 n_second, int n_us=0)
 static "constructor" to create a relative time, including microseconds
 

Private Member Methods

virtual DLLEXPORT ~DateTimeNode ()
 protected destructor only called when references = 0, use deref() instead
 
- Private Member Methods inherited from SimpleValueQoreNode
virtual DLLEXPORT QoreValue evalImpl (bool &needs_deref, ExceptionSink *xsink) const
 should never be called for value types More...
 
- Private Member Methods inherited from AbstractQoreNode
virtual DLLEXPORT ~AbstractQoreNode ()
 default destructor does nothing More...
 
- Private Member Methods inherited from DateTime
DLLLOCAL DateTime (qore_date_private *n_priv)
 this constructor is not exported in the library
 
DLLLOCAL DateTimeoperator= (const DateTime &)
 this function is not implemented; it is here as a private function in order to prohibit it from being used
 

Additional Inherited Members

- Private Attributes inherited from AbstractQoreNode
bool custom_reference_handlers: 1
 set to one for objects that need custom reference handlers
 
bool needs_eval_flag: 1
 if this is true then the type can be evaluated
 
bool there_can_be_only_one: 1
 if this is set to true, then reference counting is turned off for objects of this class
 
qore_type_t type: 11
 the type of the object More...
 
bool value: 1
 this is true for values, if false then either the type needs evaluation to produce a value or is a parse expression
 
- Private Attributes inherited from DateTime
class qore_date_private * priv
 private date data - most are ints so relative dates can hold a lot of data
 

Detailed Description

Qore's parse tree/value type for date-time values, reference-counted, dynamically-allocated only.

Constructor & Destructor Documentation

◆ DateTimeNode() [1/10]

DLLEXPORT DateTimeNode::DateTimeNode ( bool  r = false)

constructor for an empty object

Parameters
rsets the "relative" flag for the object

◆ DateTimeNode() [2/10]

DLLEXPORT DateTimeNode::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 
)

constructor for setting all parameters

Parameters
n_yearthe year value
n_monththe months value
n_daythe days value
n_hourthe hours value
n_minutethe minutes value
n_secondthe seconds value
n_msthe milliseconds value
n_relativethe relative flag

◆ DateTimeNode() [3/10]

DLLEXPORT DateTimeNode::DateTimeNode ( int64  seconds)

constructor for setting an absolute date based on the number of seconds from January 1, 1970

Parameters
secondsthe number of seconds from January 1, 1970

◆ DateTimeNode() [4/10]

DLLEXPORT DateTimeNode::DateTimeNode ( int64  seconds,
int  ms 
)

constructor for setting an absolute date based on the number of seconds from January 1, 1970 (plus milliseconds)

Parameters
secondsthe number of seconds from January 1, 1970
msthe milliseconds portion of the time

◆ DateTimeNode() [5/10]

DLLEXPORT DateTimeNode::DateTimeNode ( const AbstractQoreZoneInfo *  zone,
const QoreValue  v 
)
explicit

constructor for creating an absolute date from a value representing a number of seconds

Parameters
zonetime zone for the date/time value, 0 = UTC,
See also
currentTZ()
Parameters
vthe value representing the number of seconds representing the offset from the epoch (1970-01-01)
Note
the zone argument is the assumed time zone for values without a specified time zone; for example, if the value is a string with a time zone specification then the zone argument is ignored

◆ DateTimeNode() [6/10]

DLLEXPORT DateTimeNode::DateTimeNode ( const QoreValue  v)
explicit

constructor for creating a relative date from a value representing a number of seconds

Parameters
vthe value representing the number of seconds

◆ DateTimeNode() [7/10]

DLLEXPORT DateTimeNode::DateTimeNode ( const char *  date)

constructor for setting the date from a string with a flexible format, silently accepts invalid date strings

Parameters
datethe string to use to set the date

◆ DateTimeNode() [8/10]

DLLEXPORT DateTimeNode::DateTimeNode ( const char *  date,
ExceptionSink xsink 
)

constructor for setting the date from a string with a flexible format, throws a Qore-language exception if the date string is invalid

Parameters
datethe string to use to set the date
xsinkany errors in the data string cause a Qore-language exception to be thrown here
Since
Qore 0.8.12.4

◆ DateTimeNode() [9/10]

DLLEXPORT DateTimeNode::DateTimeNode ( const AbstractQoreZoneInfo *  zone,
const char *  date 
)

constructor for setting the date from a string with a flexible format

Parameters
zonetime zone for the date/time value, 0 = UTC,
See also
currentTZ()
Parameters
datethe string to use to set the date

◆ DateTimeNode() [10/10]

DLLEXPORT DateTimeNode::DateTimeNode ( hashdecl tm *  tms)

constructor for setting an absolute date based on a "hashdecl tm"

Parameters
tmsa structure giving the absolute date to set

Member Function Documentation

◆ add() [1/2]

DLLEXPORT DateTimeNode* DateTimeNode::add ( const DateTime dt) const

adds a DateTime value to the current value and returns the new value, the caller owns the pointer's reference count

Returns
a new DateTimeNode value, the caller owns the pointer's reference count

◆ add() [2/2]

DLLEXPORT DateTimeNode* DateTimeNode::add ( const DateTime dt) const

adds a DateTime value to the current value and returns the new value, the caller owns the pointer's reference count

Returns
a new DateTimeNode value, the caller owns the pointer's reference count

◆ copy()

DLLEXPORT DateTimeNode* DateTimeNode::copy ( ) const

returns a copy of the DateTimeNode, the caller owns the pointer's reference count

Returns
a copy of the DateTimeNode, the caller owns the pointer's reference count

◆ getAsString() [1/2]

virtual DLLEXPORT QoreString* DateTimeNode::getAsString ( bool &  del,
int  foff,
ExceptionSink xsink 
) const
virtual

returns the date/time value as a formatted string for n and N printf formatting, del is set to true

the format for absolute date/time value is: YYYY-MM-DD HH:mm:SS the format for relative date/time values is: <time: x years, x months, ...> NOTE: do not use this function directly, use QoreStringValueHelper instead

Parameters
deloutput parameter: always set to true by this function, meaning that the caller owns the QoreString pointer returned (and must delete it manually)
foffignored for this implementation of the file
xsinkignored for this implementation of the file
Returns
a QoreString pointer, use the del output parameter to determine ownership of the pointer
See also
QoreStringValueHelper

Implements AbstractQoreNode.

◆ getAsString() [2/2]

virtual DLLEXPORT int DateTimeNode::getAsString ( QoreString str,
int  foff,
ExceptionSink xsink 
) const
virtual

concatenates a string representation of the date/time value (designed for n and N printf formatting) to a QoreString reference

the format for absolute date/time value is: YYYY-MM-DD HH:mm:SS the format for relative date/time values is: <time: x years, x months, ...>

Parameters
strthe QoreString reference to concatenate the date/time value to
foffignored for this implementation of the file
xsinkignored for this implementation of the file
See also
QoreNodeAsStringHelper

Implements AbstractQoreNode.

◆ getDateFromISOWeek()

static DLLEXPORT DateTimeNode* DateTimeNode::getDateFromISOWeek ( int  year,
int  week,
int  day,
ExceptionSink xsink 
)
static

returns a DateTimeNode value as generated from the ISO-8601 week information

NOTE: ISO-8601 week days go from 1 - 7 = Mon - Sun, a 0 return value means an exception was raised in the case the ISO-8601 week information is invalid

Parameters
yearthe ISO-8601 year (may differ from the actual calendar year)
weekthe ISO-8601 week number in the year
daythe ISO-8601 day number (1=Mon, 7=Sun)
xsinkif an error occurs, the Qore-language exception information will be added here

◆ getDateTimeRepresentation() [1/2]

virtual DLLEXPORT DateTime* DateTimeNode::getDateTimeRepresentation ( bool &  del) const
virtual

returns "this" as a DateTime, del is set to false

NOTE: Use the DateTimeValueHelper class instead of using this function directly

Parameters
deloutput parameter: if del is true, then the returned DateTime pointer belongs to the caller (and must be deleted manually), if false, then it must not be
See also
DateTimeValueHelper

Reimplemented from AbstractQoreNode.

◆ getDateTimeRepresentation() [2/2]

virtual DLLEXPORT void DateTimeNode::getDateTimeRepresentation ( DateTime dt) const
virtual

assigns this date/time representation to the passed DateTime reference

Parameters
dtthe reference where the current date/time value will be copied

Reimplemented from AbstractQoreNode.

◆ getStringRepresentation() [1/2]

virtual DLLEXPORT QoreString* DateTimeNode::getStringRepresentation ( bool &  del) const
virtual

returns a string in the format YYYYMMDDHHmmSS, del is set to true

NOTE: do not use this function directly, use QoreStringValueHelper instead

Parameters
deloutput parameter: if del is true, then the resulting QoreString pointer belongs to the caller (and must be deleted manually), if false it must not be
Returns
a QoreString pointer, use the del output parameter to determine ownership of the pointer
See also
QoreStringValueHelper

Reimplemented from AbstractQoreNode.

◆ getStringRepresentation() [2/2]

virtual DLLEXPORT void DateTimeNode::getStringRepresentation ( QoreString str) const
virtual

concatentates the date/time value in the format YYYYMMDDHHmmDD to an existing QoreString reference

Parameters
stra reference to a QoreString where date/time value will be concatenated in the format YYYYMMDDHHmmDD

Reimplemented from AbstractQoreNode.

◆ is_equal_hard()

virtual DLLEXPORT bool DateTimeNode::is_equal_hard ( const AbstractQoreNode v,
ExceptionSink xsink 
) const
virtual

tests for equality ("deep compare" including all contained values for container types) without type conversions (hard compare)

Parameters
vthe value to compare
xsinkif an error occurs, the Qore-language exception information will be added here
Returns
true if the objects are equal, false if not

Implements AbstractQoreNode.

◆ is_equal_soft()

virtual DLLEXPORT bool DateTimeNode::is_equal_soft ( const AbstractQoreNode v,
ExceptionSink xsink 
) const
virtual

tests for equality with possible type conversion (soft compare)

this function does not throw any Qore-language exceptions

Parameters
vthe value to compare
xsinkis not used in this implementation of the function

Implements AbstractQoreNode.

◆ makeAbsolute() [1/2]

static DLLEXPORT DateTimeNode* DateTimeNode::makeAbsolute ( const AbstractQoreZoneInfo *  n_zone,
int  n_year,
int  n_month,
int  n_day,
int  n_hour,
int  n_minute,
int  n_second,
int  n_us,
ExceptionSink xsink 
)
static

static "constructor" to create an absolute time, including microseconds, throws an exception with invalid date/time components

Since
Qore 0.8.12.4

◆ makeAbsolute() [2/2]

static DLLEXPORT DateTimeNode* DateTimeNode::makeAbsolute ( const AbstractQoreZoneInfo *  zone,
int64  seconds,
int  us = 0 
)
static

static "constructor" to create an absolute time as an offset from the epoch, including microseconds

Parameters
zonetime zone for the date/time value, 0 = UTC,
See also
currentTZ()
Parameters
secondsthe number of seconds from January 1, 1970
usthe microseconds portion of the time

◆ makeAbsoluteLocal()

static DLLEXPORT DateTimeNode* DateTimeNode::makeAbsoluteLocal ( const AbstractQoreZoneInfo *  zone,
int64  seconds,
int  us = 0 
)
static

static "constructor" to create an absolute time as an offset from the given time zone's epoch, including microseconds

Parameters
zonetime zone for the date/time value, 0 = UTC,
See also
currentTZ()
Parameters
secondsthe number of seconds from January 1, 1970 in the time zone passed as the first argument
usthe microseconds portion of the time

◆ realCopy()

virtual DLLEXPORT AbstractQoreNode* DateTimeNode::realCopy ( ) const
virtual

returns a copy of the object; the caller owns the reference count

Returns
a copy of the object; the caller owns the reference count

Implements AbstractQoreNode.

◆ subtractBy() [1/2]

DLLEXPORT DateTimeNode* DateTimeNode::subtractBy ( const DateTime dt) const

subtracts a DateTime value from the current value and returns the new value, the caller owns the pointer's reference count

Returns
a new DateTimeNode value, the caller owns the pointer's reference count

◆ subtractBy() [2/2]

DLLEXPORT DateTimeNode* DateTimeNode::subtractBy ( const DateTime dt) const

subtracts a DateTime value from the current value and returns the new value, the caller owns the pointer's reference count

Returns
a new DateTimeNode value, the caller owns the pointer's reference count

The documentation for this class was generated from the following file: