casacore::Time Class Reference
date and time enquiry functions, with some operations.
More...
#include <Time.h>
List of all members.
Public Member Functions |
| Time () |
| the default constructor returns an object with the present date and time
|
| Time (double jdn) |
| Construct time with Julian day number.
|
| Time (uInt year, uInt month, uInt day, uInt hour=0, uInt min=0, double sec=0.0) |
| Construct Time with Gregorian calendar.
|
| Time (const Time &time) |
| Copy constructor.
|
double | julianDay () const |
| return the Julian day (unit day)
|
double | modifiedJulianDay () const |
| return the modified Julian day (unit day)
|
Time & | operator= (const Time &time) |
| initialise the julian day data with Time class
|
double | operator- (const Time &begin) |
Time | operator+ (const double plus) |
Bool | operator== (const Time &other) const |
Bool | operator!= (const Time &other) const |
Bool | operator> (const Time &other) const |
Bool | operator< (const Time &other) const |
String | toString (const Bool iso=False) const |
| if iso is True, then use ISO 8601 format otherwise, produce the string of the form Tue Mar 22 16:40:24 1994 with GMT time
|
const String | ISODate () const |
| returns a String in ISO 8601 format YYYY-MM-DDTHH:MM:SS in GMT note: for dates beyond year 9999, use more digits for year
|
void | now () |
| reset date to the present instant
|
void | setDate (uInt year, uInt month, uInt day, uInt hour=0, uInt min=0, double sec=0.0) |
double | age () |
| number of seconds which have elapsed since Time object was created or reset
|
uInt | seconds () |
| Return the seconds, minutes or hour part of the time.
|
double | dseconds () |
uInt | minutes () |
uInt | hours () |
uInt | dayOfMonth () |
uInt | month () |
uInt | year () |
uInt | dayOfWeek () |
uInt | dayOfYear () |
Static Public Member Functions |
static uInt | howManyDaysInMonth () |
static uInt | howManyDaysInMonth (uInt month, uInt year) |
static Bool | isLeapYear () |
static Bool | isLeapYear (uInt year) |
static Int | timeZoneSeconds () |
| Returns the difference, in seconds, between UTC and local time.
|
static Double | timeZoneDays () |
| Same as timeZoneSeconds(), but returns fractional days rather than seconds.
|
static String | timeZoneName () |
| Returns a string, e.g.
|
Protected Attributes |
uInt | mJulianDay |
| Modified Julian day number 40587 modified Julian day number = 00:00:00 January 1, 1970, GMT.
|
double | mJulianDayfrac |
| the fraction of the day
|
Friends |
ostream & | operator<< (ostream &out, const Time &other) |
| write the current time, GMT, in format Tue Mar 22 16:40:24 1994
|
istream & | operator>> (istream &, Time &) |
| read in date, which must be in the following format month/day/year,hour:min:sec where month,day,year,hour,min and sec are uInt.
|
Detailed Description
date and time enquiry functions, with some operations.
Intended use:
Public interface
Review Status
- Reviewed By:
- Paul Shannon
- Date Reviewed:
- 1995/03/01
- Test programs:
- tTime
This class might be better named a Date object, especially given that more accurate Time classes are going to be required.
Prerequisite
-
you should understand the difference between "Julian" and "modified Julian" date
Synopsis
This class provides convenient date objects for the programmer. Once constructed, they may be compared, read and written, and queried for a wide variety of re-expressions. In a typical (?) use you might create a Time object, and then query it to find out the current month, day of the week, and whether it is a leap year. You can also find out the number of seconds which have elapsed since a specific Time.
Caution: This class should not be used for very high precision work; The time from epoch (1970;0) in seconds is interconverted between computer "double" values, and some loss of accuracy might result;
Example
Time startTime;
Time moonLanding (1969,7,14);
cout << "date and time of moon landing: " << moonLanding << endl;
cout << "day of week: " << moonLanding.dayOfWeek () << endl;
cout << "day of year: " << moonLanding.dayOfYear () << endl;
cout << "seconds since moon landing: " << moonLanding.age () << endl;
cout << "weeks since moon landing: " <<
moonLanding.age () / (60 * 60 * 24 * 7) << endl;
cout << "seconds elapsed since start: " << startTime.age () << endl;
To Do
-
member function 'age' might be renamed 'elapsedTime'
-
A reference to the source of each algorithm should be provided.
Definition at line 88 of file Time.h.
Constructor & Destructor Documentation
the default constructor returns an object with the present date and time
casacore::Time::Time |
( |
double |
jdn |
) |
|
Construct time with Julian day number.
casacore::Time::Time |
( |
uInt |
year, |
|
|
uInt |
month, |
|
|
uInt |
day, |
|
|
uInt |
hour = 0 , |
|
|
uInt |
min = 0 , |
|
|
double |
sec = 0.0 | |
|
) |
| | |
Construct Time with Gregorian calendar.
-
seconds after the minute [0,59.999] (include milliseconds)
-
minutes after the hour [0,59]
-
hours after midnight [0,23]
-
day of the month [1,31]
-
month of the year [1,12]
-
year. Beware, because '94' refers to the early Christian era, not the 20th century.
casacore::Time::Time |
( |
const Time & |
time |
) |
|
Member Function Documentation
double casacore::Time::age |
( |
|
) |
|
number of seconds which have elapsed since Time object was created or reset
uInt casacore::Time::dayOfMonth |
( |
|
) |
|
uInt casacore::Time::dayOfWeek |
( |
|
) |
|
uInt casacore::Time::dayOfYear |
( |
|
) |
|
double casacore::Time::dseconds |
( |
|
) |
|
uInt casacore::Time::hours |
( |
|
) |
|
static uInt casacore::Time::howManyDaysInMonth |
( |
uInt |
month, |
|
|
uInt |
year | |
|
) |
| | [static] |
static uInt casacore::Time::howManyDaysInMonth |
( |
|
) |
[static] |
static Bool casacore::Time::isLeapYear |
( |
uInt |
year |
) |
[static] |
static Bool casacore::Time::isLeapYear |
( |
|
) |
[static] |
const String casacore::Time::ISODate |
( |
|
) |
const [inline] |
double casacore::Time::julianDay |
( |
|
) |
const |
return the Julian day (unit day)
uInt casacore::Time::minutes |
( |
|
) |
|
double casacore::Time::modifiedJulianDay |
( |
|
) |
const |
return the modified Julian day (unit day)
uInt casacore::Time::month |
( |
|
) |
|
void casacore::Time::now |
( |
|
) |
|
reset date to the present instant
Bool casacore::Time::operator!= |
( |
const Time & |
other |
) |
const |
Time casacore::Time::operator+ |
( |
const double |
plus |
) |
|
double casacore::Time::operator- |
( |
const Time & |
begin |
) |
|
Bool casacore::Time::operator< |
( |
const Time & |
other |
) |
const |
Time& casacore::Time::operator= |
( |
const Time & |
time |
) |
|
initialise the julian day data with Time class
Bool casacore::Time::operator== |
( |
const Time & |
other |
) |
const |
Bool casacore::Time::operator> |
( |
const Time & |
other |
) |
const |
uInt casacore::Time::seconds |
( |
|
) |
|
Return the seconds, minutes or hour part of the time.
void casacore::Time::setDate |
( |
uInt |
year, |
|
|
uInt |
month, |
|
|
uInt |
day, |
|
|
uInt |
hour = 0 , |
|
|
uInt |
min = 0 , |
|
|
double |
sec = 0.0 | |
|
) |
| | |
static Double casacore::Time::timeZoneDays |
( |
|
) |
[static] |
static String casacore::Time::timeZoneName |
( |
|
) |
[static] |
Returns a string, e.g.
"EST" or "MDT", describing the current local time zone.
static Int casacore::Time::timeZoneSeconds |
( |
|
) |
[static] |
Returns the difference, in seconds, between UTC and local time.
Negative values are west of GMT, positive are east.
if iso is True, then use ISO 8601 format otherwise, produce the string of the form Tue Mar 22 16:40:24 1994 with GMT time
Referenced by ISODate().
uInt casacore::Time::year |
( |
|
) |
|
Friends And Related Function Documentation
ostream& operator<< |
( |
ostream & |
out, |
|
|
const Time & |
other | |
|
) |
| | [friend] |
write the current time, GMT, in format Tue Mar 22 16:40:24 1994
Definition at line 140 of file Time.h.
istream& operator>> |
( |
istream & |
, |
|
|
Time & |
| |
|
) |
| | [friend] |
read in date, which must be in the following format month/day/year,hour:min:sec where month,day,year,hour,min and sec are uInt.
Member Data Documentation
Modified Julian day number 40587 modified Julian day number = 00:00:00 January 1, 1970, GMT.
Definition at line 200 of file Time.h.
the fraction of the day
Definition at line 202 of file Time.h.
The documentation for this class was generated from the following file: