LtXmlLib16::CDateTime Class
A primitive type to a represent a date/time as defined by the XML w3c

Base Classes:
Implemented interfaces:
Date and Time manipulation class provided as part of the Liquid XML Data Binding Runtime.

Supports the W3C XML Schema specification subset of the ISO 8601 standard.
The date uses the proleptic Gregorian calendar, this means that dates previous to the invent
of the Gregorian calendar are still held as Gregorian dates.

The Minimum Date represents -9999-12-31T23:59:59.999999999
The Maximum Date represents 9999-12-31T23:59:59.999999999

NOTE: CDateTime uses the XML Schema formula for proleptic Gregorian calendar where year 0 is illegal and -4 (4BC) as a leap year.

The Type of value held in the DateTime will differ depending on the way the DateTime is constructed. The Type
value is immutable and is taken from the XML Schema subset of the ISO 8601 standard as follows:

dateTime comprises [-]CCYY-MM-DDThh:mm:ss[.ff][[Z]|[[+|-]hh:mm]]
date comprises [-]CCYY-MM-DD[[Z]|[[+|-]hh:mm]]
gDay comprises ---DD[[Z]|[[+|-]hh:mm]]
gMonth comprises --MM[[Z]|[[+|-]hh:mm]]
gYear comprises [-]CCYY[[Z]|[[+|-]hh:mm]]
gMonthDay comprises --MM-DD[[Z]|[[+|-]hh:mm]]
gYearMonth comprises [-]CCYY-MM[[Z]|[[+|-]hh:mm]]
time comprises hh:mm:ss[.ff][[Z]|[[+|-]hh:mm]]

The parts in [...] are optional, everything else is mandatory where:

'+', '-', ':', '.', 'T' and 'Z' = literal values
CCYY = Year (-9999 <= CCYY <= 9999 && CCYY != 0000)
MM = Month (01 <= MM <= 12)
DD = Day (01 <= DD <= DaysInMonth)
hh = Hour (00 <= hh <= 23)
mm = Minute (00 <= mm <= 59)
ss = Second (00 <= ss <= 59)
ff = Fraction of Second (0 <= ff <= 999999999)

  Members Description  
    CDateTime Constructor for CDateTime  
    CompareTo Compares this date with another CDateTime  
    GetAsSystemTime Converts the CDateTime to a SYSTEMTIME  
    GetCurrentTime Static Method, returns a CDateTime with the current time.  
    GetDayOfWeek Gets the Day of the Week  
    GetDayOfYear Gets the Day of the Year  
    GetDay Gets the Day part of the time  
    GetHour Gets the Hour part of the time  
    GetMicroSecond Gets the Micro-Second (10^-6) part of the time  
    GetMilliSecond Gets the Milli-Second (10^-3) part of the time  
    GetMinute Gets the Minute part of the time  
    GetMonth Gets the Month part of the date. Jan = 1  
    GetNanoSecond Gets the Nano-Second (10^-9) part of the time  
    GetNormalized Creates a new CDateTime that is a normalized copy of this CDateTime  
    GetRealSecond Gets the Second part of the time as a real number including Fraction parts.  
    GetSecond Gets the Second part of the time  
    GetTime Converts this CDateTime to a time_t  
    GetTypeAsString Gets a string representation for the type of this CDateTime.  
    GetType Gets the type of this CDateTime  
    GetYear Gets the Year part of the date  
    GetZoneHour Gets the Hour part of the time zone.  
    GetZoneMinute Gets the Minute part of the time  
    HasTimeZone Returns true if the TimeZone part of the CDateTime is been used.  
    IsUTC Returns true if the UTC part of the CDateTime is been used.  
    IsZoneNegative Returns true is the Zone is negative.  
    operator= Populates this CDateTime from another object  
    operator== Compares this CDateTime to another CDateTime  
    operator!= Compares this CDateTime with another CDateTime  
    operator- Creates a new CDateTime containing this CDateTime - CDateTimeSpan value  
    operator+ Creates a new CDateTime containing this CDateTime + CDateTimeSpan value  
    operator> Compares this CDateTime with another CDateTime  
    operator< Compares this CDateTime with another CDateTime  
    operator>= Compares this CDateTime with another CDateTime  
    operator<= Compares this CDateTime with another CDateTime  
    operator-= Subtrats CDateTimeSpan value to this CDateTime  
    operator+= Adds CDateTimeSpan value to this CDateTime  
    ParseXSDDate Populates this CDateTime with the value specified as a valid XML Schema date, gDay, gMonth, gYear, gMonthDay or gYearMonth.  
    ParseXSDDateTime Populates this CDateTime with the value specified as a valid XML Schema dateTime.  
    SetDate Populates this CDateTime as type date.  
    SetDateTime Populates this CDateTime as type dateTime.  
    SetFracTime Populates this CDateTime as type time.  
    SetGDay Populates this CDateTime as type gDay.  
    SetGMonth Populates this CDateTime as type gMonth  
    SetGMonthDay Populates this CDateTime as type gMonthDay  
    SetGYearMonth Populates this CDateTime as type gYearMonth.  
    SetGYear Populates this CDateTime as type gYear.  
    SetTime Populates this CDateTime as type time.  
    SetTimeZone Specifies the TimeZone for this CDateTime to use.  
    SetUTC Specifies this CDateTime is UTC.  
    ToString Returns a std::string representation of this CDateTime.