!-- iaDateTime class

iaDateTime                  CLASS, TYPE, MODULE('iaDateTime.clw'), LINK('iaDateTime.clw')
dt                              DECIMAL(20), PRIVATE  !-- Unix time in milliseconds

!!!<remark>
!!!Allowed negative values.
!!!Don't use dates prior 1801-01-01
!!!</remark>
FromDateTime                    PROCEDURE(LONG pYear, LONG pMonth, LONG pDay, LONG pHour = 0, LONG pMinute = 0, LONG pSecond = 0, LONG pMillisecond = 0)
FromDateTime                    PROCEDURE(ULONG pDate, ULONG pTime = 0)

!!!<param name="Fmt">Format of pTimeStamp.
!!! If omitted, YYYY-MM-DDThh:mm:ss assumed.
!!!</param>
FromTimeStamp                   PROCEDURE(STRING pTimeStamp, <STRING pFmt>)  !-- default pFmt = @p####-##-##T##:##:##p (2017-06-29T09:29:59)

!!!<param name="pUnixTime">A number of seconds since 1970-01-01T00:00:00.
!!!Min value 1901-12-13T20:45:52, max value 2038-01-19T03:14:07.
!!!</param>
FromUnixTime                    PROCEDURE(LONG pUnixTime) !-- # of seconds since 1970-01-01T00:00:00

FromNow                         PROCEDURE()

ClaDate                         PROCEDURE(), ULONG         !-- returns date part
ClaTime                         PROCEDURE(), ULONG         !-- returns time part


TimeStamp                       PROCEDURE(BOOL pTSeparator = FALSE, BOOL pWithMilliseconds = FALSE), STRING

!!!<returns>
!!!A number of seconds elapsed since 1970-01-01 00:00:00 (negative value for dates prior 1970-01-01),
!!! as STRING to store big values (which exceed 32 bits).
!!!</returns>
UnixTime                        PROCEDURE(), STRING

Year                            PROCEDURE(), ULONG
Month                           PROCEDURE(), ULONG
Day                             PROCEDURE(), ULONG
Hour                            PROCEDURE(), ULONG
Minute                          PROCEDURE(), ULONG
Second                          PROCEDURE(), ULONG
Milliseconds                    PROCEDURE(), ULONG

!!!<summary>Compares this instance against passed DateTime.</summary>
!!!<returns>
!!!Less than zero: SELF < pDateTime
!!!Zero: SELF = pDateTime
!!!Greater than zero: SELF > pDateTime
!!!</returns>
Compare                         PROCEDURE(iaDateTime pDateTime), SIGNED

!!!<summary>Calculate timestamp from base timestamp.
!!!y=years, M=months, d=days, h=hours, m=minutes, s=seconds
!!!</summary>
Calc                            PROCEDURE(STRING pParam)

                            END
