casacore
Loading...
Searching...
No Matches
casacore::Time Class Reference

More...

#include <Time.h>

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)
Timeoperator= (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;
double age()
number of seconds which have elapsed since Time object was created or reset
Time()
the default constructor returns an object with the present date and time

To Do

  • member function 'age' might be renamed 'elapsedTime'
  • A reference to the source of each algorithm should be provided.

Definition at line 85 of file Time.h.

Constructor & Destructor Documentation

◆ Time() [1/4]

casacore::Time::Time ( )

the default constructor returns an object with the present date and time

Referenced by operator!=(), operator+(), operator-(), operator<(), operator<<, operator=(), operator==(), operator>(), operator>>, and Time().

◆ Time() [2/4]

casacore::Time::Time ( double jdn)

Construct time with Julian day number.

◆ Time() [3/4]

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.

References casacore::day(), casacore::min(), month(), and year().

◆ Time() [4/4]

casacore::Time::Time ( const Time & time)

Copy constructor.

References Time(), and casacore::time().

Member Function Documentation

◆ age()

double casacore::Time::age ( )

number of seconds which have elapsed since Time object was created or reset

◆ dayOfMonth()

uInt casacore::Time::dayOfMonth ( )

◆ dayOfWeek()

uInt casacore::Time::dayOfWeek ( )

◆ dayOfYear()

uInt casacore::Time::dayOfYear ( )

◆ dseconds()

double casacore::Time::dseconds ( )

◆ hours()

uInt casacore::Time::hours ( )

◆ howManyDaysInMonth() [1/2]

uInt casacore::Time::howManyDaysInMonth ( )
static

◆ howManyDaysInMonth() [2/2]

uInt casacore::Time::howManyDaysInMonth ( uInt month,
uInt year )
static

References month(), and year().

◆ isLeapYear() [1/2]

Bool casacore::Time::isLeapYear ( )
static

◆ isLeapYear() [2/2]

Bool casacore::Time::isLeapYear ( uInt year)
static

References year().

◆ ISODate()

const String casacore::Time::ISODate ( ) const
inline

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

Definition at line 132 of file Time.h.

References toString(), and casacore::True.

◆ julianDay()

double casacore::Time::julianDay ( ) const

return the Julian day (unit day)

◆ minutes()

uInt casacore::Time::minutes ( )

◆ modifiedJulianDay()

double casacore::Time::modifiedJulianDay ( ) const

return the modified Julian day (unit day)

◆ month()

uInt casacore::Time::month ( )

Referenced by howManyDaysInMonth(), setDate(), and Time().

◆ now()

void casacore::Time::now ( )

reset date to the present instant

◆ operator!=()

Bool casacore::Time::operator!= ( const Time & other) const

References Time().

◆ operator+()

Time casacore::Time::operator+ ( const double plus)

References Time().

◆ operator-()

double casacore::Time::operator- ( const Time & begin)

References Time().

◆ operator<()

Bool casacore::Time::operator< ( const Time & other) const

References Time().

◆ operator=()

Time & casacore::Time::operator= ( const Time & time)

initialise the julian day data with Time class

References Time(), and casacore::time().

◆ operator==()

Bool casacore::Time::operator== ( const Time & other) const

References Time().

◆ operator>()

Bool casacore::Time::operator> ( const Time & other) const

References Time().

◆ seconds()

uInt casacore::Time::seconds ( )

Return the seconds, minutes or hour part of the time.

◆ setDate()

void casacore::Time::setDate ( uInt year,
uInt month,
uInt day,
uInt hour = 0,
uInt min = 0,
double sec = 0.0 )

◆ timeZoneDays()

Double casacore::Time::timeZoneDays ( )
static

Same as timeZoneSeconds(), but returns fractional days rather than seconds.

◆ timeZoneName()

String casacore::Time::timeZoneName ( )
static

Returns a string, e.g.

"EST" or "MDT", describing the current local time zone.

◆ timeZoneSeconds()

Int casacore::Time::timeZoneSeconds ( )
static

Returns the difference, in seconds, between UTC and local time.

Negative values are west of GMT, positive are east.

◆ toString()

String casacore::Time::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

References casacore::False.

Referenced by ISODate(), and operator<<.

◆ year()

uInt casacore::Time::year ( )

◆ operator<<

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 137 of file Time.h.

References casacore::False, Time(), and toString().

◆ operator>>

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.

References Time().

Member Data Documentation

◆ mJulianDay

uInt casacore::Time::mJulianDay
protected

Modified Julian day number 40587 modified Julian day number = 00:00:00 January 1, 1970, GMT.

Definition at line 197 of file Time.h.

◆ mJulianDayfrac

double casacore::Time::mJulianDayfrac
protected

the fraction of the day

Definition at line 199 of file Time.h.


The documentation for this class was generated from the following file: