mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
timeUtils.hpp File Reference

Utilities for working with time. More...

Utilities for working with time.

Author
Jared R. Males (jared.nosp@m.male.nosp@m.s@gma.nosp@m.il.c.nosp@m.om)

Definition in file timeUtils.hpp.

Go to the source code of this file.

Namespaces

 mx
 The mxlib c++ namespace.
 

Functions

template<typename typeT = double, clockid_t clk_id = CLOCK_REALTIME>
typeT mx::sys::get_curr_time (timespec &tsp)
 Get the current system time in seconds. More...
 
template<typename typeT = double, clockid_t clk_id = CLOCK_REALTIME>
typeT mx::sys::get_curr_time ()
 Get the current system time in seconds. More...
 
void mx::sys::sleep (unsigned sec)
 Sleep for a specified period in seconds. More...
 
void mx::sys::milliSleep (unsigned msec)
 Sleep for a specified period in milliseconds. More...
 
void mx::sys::microSleep (unsigned usec)
 Sleep for a specified period in microseconds. More...
 
void mx::sys::nanoSleep (unsigned nsec)
 Sleep for a specified period in nanoseconds. More...
 
void mx::sys::timespecAddNsec (timespec &ts, unsigned nsec)
 Adds a time offset to an existing timespec. More...
 
template<typename floatT >
void mx::sys::parse_hms (floatT &h, floatT &m, floatT &s, const std::string &hmsstr)
 
double mx::sys::Cal2mjd (int yr, int mon, int day, int hr, int min, double sec)
 Converts a Gregorian calendar date into modified Julian date (MJD). More...
 
int mx::sys::ISO8601dateBreakdown (int &yr, int &mon, int &day, int &hr, int &min, double &sec, const std::string &fdate)
 Parse an ISO8601 date of the form "YYYY-MM-DDTHH:MM:SS.S" into the individual components. More...
 
double mx::sys::ISO8601date2mjd (const std::string &fdate)
 Parse an ISO8601 date of the form "YYYY-MM-DDTHH:MM:SS.S" and return the modified Julian date (MJD) More...
 
template<typename timeT >
std::string mx::sys::ISO8601DateTimeStr (const timeT &timeIn, int timeZone=0)
 Get a date-time string in ISO 8601 format. More...
 
template<>
std::string mx::sys::ISO8601DateTimeStr< time_t > (const time_t &timeIn, int timeZone)
 Get a date-time string in ISO 8601 format for time_t. More...
 
template<>
std::string mx::sys::ISO8601DateTimeStr< timespec > (const timespec &timeIn, int timeZone)
 Get a date-time string in ISO 8601 format for timespec. More...
 
std::string mx::sys::ISO8601DateTimeStr (int timeZone=0)
 Get a date-time string in ISO 8601 format for the current UTC time. More...
 
std::string mx::sys::ISO8601DateTimeStrMJD (const double &timeIn, int timeZone=0)
 Get a date-time string in ISO 8601 format for an MJD. More...
 
int mx::sys::timeStamp (std::string &tstamp, timespec &ts)
 Get a timestamp string in the form YYYYMMDDHHMMSS.SSSSSSSSS. More...
 
int mx::sys::timespecUTC2TAIMJD (double &djm, double &djmf, const timespec &tsp, tm *tm0)
 Convert a UTC timespec to TAI modified Julian date. More...
 
timespec mx::sys::meanTimespec (timespec ts1, timespec ts2)
 Calculate the mean time of two times given by timespecs. More...
 
bool mx::sys::tscomp::operator< (timespec const &tsL, timespec const &tsR)
 Timespec comparison operator < (see caveats) More...
 
bool mx::sys::tscomp::operator> (timespec const &tsL, timespec const &tsR)
 Timespec comparison operator > (see caveats) More...
 
bool mx::sys::tscomp::operator== (timespec const &tsL, timespec const &tsR)
 Timespec comparison operator == (see caveats) More...
 
bool mx::sys::tscomp::operator<= (timespec const &tsL, timespec const &tsR)
 Timespec comparison operator <= (see caveats) More...
 
bool mx::sys::tscomp::operator>= (timespec const &tsL, timespec const &tsR)
 Timespec comparison operator >= (see caveats) More...
 
template<typename arithT >
timespec mx::sys::tsop::operator+ (timespec ts, arithT add)
 Add an amount of time specified in seconds to a timespec. More...
 
template<typename arithT >
timespec mx::sys::tsop::operator- (timespec ts, arithT sub)
 Subtract an amount of time specified in seconds from a timespec. More...
 

Function Documentation

◆ meanTimespec()

timespec mx::sys::meanTimespec ( timespec  ts1,
timespec  ts2 
)

Calculate the mean time of two times given by timespecs.

Returns
the mean value of the inputs.
Parameters
[in]ts1one of the times to average
[in]ts2the other time to average

Definition at line 278 of file timeUtils.cpp.

References mx::sys::meanTimespec().

Referenced by mx::sys::ISO8601DateTimeStr(), and mx::sys::meanTimespec().

◆ operator+()

template<typename arithT >
timespec mx::sys::tsop::operator+ ( timespec  ts,
arithT  add 
)

Add an amount of time specified in seconds to a timespec.

Returns
the resulting timespec after addition
Parameters
[in]tsthe timespec to add to
[in]addthe seconds to add

Definition at line 427 of file timeUtils.hpp.

References mx::sys::tsop::operator+().

Referenced by mx::sys::tsop::operator+().

◆ operator-()

template<typename arithT >
timespec mx::sys::tsop::operator- ( timespec  ts,
arithT  sub 
)

Subtract an amount of time specified in seconds from a timespec.

Returns
the resulting timespec after subtraction
Parameters
[in]tsthe timespec to subtract from
[in]subthe seconds to subtract

Definition at line 449 of file timeUtils.hpp.

References mx::sys::tsop::operator-().

Referenced by mx::sys::tsop::operator-().