Go forward to Date Functions.
Go backward to Date Arithmetic.
Go up to Date Arithmetic.
Date Conversions
----------------
The `t D' (`calc-date') [`date'] command converts a date form into a
number, measured in days since Jan 1, 1 AD. The result will be an
integer if DATE is a pure date form, or a fraction or float if DATE is
a date/time form. Or, if its argument is a number, it converts this
number into a date form.
With a numeric prefix argument, `t D' takes that many objects (up to
six) from the top of the stack and interprets them in one of the
following ways:
The `date(YEAR, MONTH, DAY)' function builds a pure date form out of
the specified year, month, and day, which must all be integers. YEAR
is a year number, such as 1991 (*not* the same as 91!). MONTH must be
an integer in the range 1 to 12; DAY must be in the range 1 to 31. If
the specified month has fewer than 31 days and DAY is too large, the
equivalent day in the following month will be used.
The `date(MONTH, DAY)' function builds a pure date form using the
current year, as determined by the real-time clock.
The `date(YEAR, MONTH, DAY, HMS)' function builds a date/time form
using an HMS form.
The `date(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)' function builds a
date/time form. HOUR should be an integer in the range 0 to 23;
MINUTE should be an integer in the range 0 to 59; SECOND should be any
real number in the range `[0 .. 60)'. The last two arguments default
to zero if omitted.
The `t J' (`calc-julian') [`julian'] command converts a date form into
a Julian day count, which is the number of days since noon on Jan 1,
4713 BC. A pure date is converted to an integer Julian count
representing noon of that day. A date/time form is converted to an
exact floating-point Julian count, adjusted to interpret the date form
in the current time zone but the Julian day count in Greenwich Mean
Time. A numeric prefix argument allows you to specify the time zone;
See Time Zones. Use a prefix of zero to suppress the time zone
adjustment. Note that pure date forms are never time-zone adjusted.
This command can also do the opposite conversion, from a Julian day
count (either an integer day, or a floating-point day and time in the
GMT zone), into a pure date form or a date/time form in the current or
specified time zone.
The `t U' (`calc-unix-time') [`unixtime'] command converts a date form
into a Unix time value, which is the number of seconds since midnight
on Jan 1, 1970, or vice-versa. The numeric result will be an integer
if the current precision is 12 or less; for higher precisions, the
result may be a float with (PRECISION-12) digits after the decimal.
Just as for `t J', the numeric time is interpreted in the GMT time
zone and the date form is interpreted in the current or specified
zone. Some systems use Unix-like numbering but with the local time
zone; give a prefix of zero to suppress the adjustment if so.
The `t C' (`calc-convert-time-zones') [`tzconv'] command converts a
date form from one time zone to another. You are prompted for each
time zone name in turn; you can answer with any suitable Calc time
zone expression (See Time Zones). If you answer either prompt
with a blank line, the local time zone is used for that prompt. You
can also answer the first prompt with `$' to take the two time zone
names from the stack (and the date to be converted from the third
stack level).