Points in time are stored and manipulated using the
TTime
class. TTime
uses a 64-bit integer to represent
time as the number of microseconds since midnight on 1st January 0 AD, using a
nominal Gregorian calendar. This gives a possible range of 580,000
years.
The date/time and its individual components may be set and retrieved
using the TDateTime
class. TDateTime
is the human
readable form of TTime
. It is provided to allow easy user access
to the year, month, day, hour, minute, second and microsecond components of the
time. It does not support manipulation of the date/time, or of its components,
but may be converted into a TTime
, and vice versa.
Intervals between points in time are represented by the classes
derived from TTimeIntervalBase
and by class
TTimeIntervalMicroSeconds
. Time intervals can be added or
subtracted, either to or from each other or to or from points in time. Time
interval classes exist because adding two points in time or subtracting one
point in time from another is not possible.
The Time
class is a collection of time related utility
functions; for example, functions that check for leap years and return the
number of days in the month.
Care should be taken when performing arithmetic operations on
TTime
s especially when dealing with the last day in the month. For
example:
adding one month to October 18th adds 31 days
adding one month to November 18th adds 30 days
adding one year to February 29th, 1996 gives Feb 28th, 1997
adding one month to March 31st gives April 30th but subtracting one month from April 30th gives March 30th