#### Description:

A TimeFrame is a specialised form of one-dimensional Frame which represents various coordinate systems used to describe positions in time.

A TimeFrame represents a moment in time as either an Modified Julian Date (MJD), a Julian Date (JD), a Besselian epoch or a Julian epoch, as determined by the System attribute. Optionally, a zero point can be specified (using attribute TimeOrigin) which results in the TimeFrame representing time offsets from the specified zero point.

Even though JD and MJD are defined as being in units of days, the TimeFrame class allows other units to be used (via the Unit attribute) on the basis of simple scalings (60 seconds = 1 minute, 60 minutes = 1 hour, 24 hours = 1 day, 365.25 days = 1 year). Likewise, Julian epochs can be described in units other than the usual years. Besselian epoch are always represented in units of (tropical) years.

The TimeScale attribute allows the time scale to be specified (that is, the physical process used to define the rate of flow of time). MJD, JD and Julian epoch can be used to represent a time in any supported time scale. However, Besselian epoch may only be used with the `"` TT`"` (Terrestrial Time) time scale. The list of supported time scales includes universal time and siderial time. Strictly, these represent angles rather than time scales, but are included in the list since they are in common use and are often thought of as time scales.

When a time value is formatted it can be formated either as a simple floating point value, or as a Gregorian date (see the Format attribute).

#### Constructor Function

astTimeFrame

#### Inheritance

The TimeFrame class inherits from the Frame class.

#### Attributes

In addition to those attributes common to all Frames, every TimeFrame also has the following attributes:

- AlignTimeScale: Time scale in which to align TimeFrames

- LTOffset: The offset of Local Time from UTC, in hours.

- TimeOrigin: The zero point for TimeFrame axis values

- TimeScale: The timescale used by the TimeFrame

Several of the Frame attributes inherited by the TimeFrame class refer to a specific axis of the Frame (for instance Unit(axis), Label(axis), etc). Since a TimeFrame is strictly one-dimensional, it allows these attributes to be specified without an axis index. So for instance, `"` Unit`"` is allowed in place of `"` Unit(1)`"` .

#### Functions

In addition to those functions applicable to all Frames, the following functions may also be applied to all TimeFrames:

- astCurrentTime: Return the current system time

Copyright (C) 2021 East Asian Observatory