#include <Pt/Time.h>
Time expressed in hours, minutes, seconds and milliseconds. More...
Public Member Functions | |
| Time () | |
| Construct a Time set to zero. | |
| Time (unsigned h, unsigned m, unsigned s=0, unsigned ms=0) | |
| Construct from time values. More... | |
| Time | addMSecs (Pt::int64_t ms) const |
| Adds milliseconds to the time. More... | |
| Time | addSecs (int secs) const |
| Adds seconds to the time. More... | |
| void | get (unsigned &h, unsigned &m, unsigned &s, unsigned &ms) const |
| Get the time values. More... | |
| unsigned | hour () const |
| Returns the hour-part. | |
| unsigned | minute () const |
| Returns the minute-part. | |
| unsigned | msec () const |
| Returns the millisecond-part. | |
| Pt::int64_t | msecsUntil (const Time &t) const |
| Calculates the milliseconds until another time. | |
| Time & | operator+= (const Timespan &ts) |
| Assignment by sum operator. | |
| Time & | operator-= (const Timespan &ts) |
| Assignment by difference operator. | |
| Time & | operator= (const Time &other) |
| Assignment operator. | |
| unsigned | second () const |
| Returns the second-part. | |
| int | secsUntil (const Time &t) const |
| Determines seconds until another time. | |
| void | set (unsigned h, unsigned m, unsigned s, unsigned ms=0) |
| Sets the time. More... | |
| void | setTotalMSecs (uint32_t msecs) |
| Sets to total milliseconds. | |
| std::string | toIsoString () const |
| Returns the time in ISO-format (hh:mm:ss.hhh). | |
| uint32_t | toMSecs () const |
| Converts to milliseconds. | |
Static Public Member Functions | |
| static Time | fromIsoString (const std::string &s) |
| Convert from an ISO time string. More... | |
| static bool | isValid (unsigned h, unsigned m, unsigned s, unsigned ms) |
| Returns true if values are a valid time. | |
Related Functions | |
| bool | operator!= (const Time &a, const Time &b) |
| Inequal comparison operator. | |
| Time | operator+ (const Time &time, const Timespan &ts) |
| Addition operator. | |
| Time | operator- (const Time &time, const Timespan &ts) |
| Substraction operator. | |
| Timespan | operator- (const Time &a, const Time &b) |
| Substraction operator. | |
| bool | operator< (const Time &a, const Time &b) |
| Less-than comparison operator. | |
| void | operator<<= (SerializationInfo &si, const Time &time) |
| Serialize a Time. | |
| bool | operator<= (const Time &a, const Time &b) |
| Less-than-or-equal comparison operator. | |
| bool | operator== (const Time &a, const Time &b) |
| Equal comparison operator. | |
| bool | operator> (const Time &a, const Time &b) |
| Greater-than comparison operator. | |
| bool | operator>= (const Time &a, const Time &b) |
| Greater-than-or-equal comparison operator. | |
| void | operator>>= (const SerializationInfo &si, Time &time) |
| Deserialize a Time. | |
A Pt::Time object contains a wall-clock time in hours, minutes, seconds amd milliseconds. It can be constructed either from the numeric time values or from a string in ISO format using fromIsoString(). The separate time values can be accessed with hour(), minute(), second() and msec(). Times can be compared and a Time is considered less, if it is earlier than another Time. Subtracting a time from another yields a Pt::Timespan as the result. Pt::Timespans can also be added or subtracted from a Time, yielding a new Time or modifying it, as shown in the following example:
Pt::InvalidTime is thrown, if a time could not be constructed, for example if one of the time values is out of range. To avoid an exception, time values can be validated with isValid().
| Time | ( | unsigned | h, |
| unsigned | m, | ||
| unsigned | s = 0, |
||
| unsigned | ms = 0 |
||
| ) |
Construct the time to a hour, minute, second and milli-second.
| h | Hours |
| m | Minutes |
| s | Seconds |
| ms | Milliseconds |
| InvalidTime | One or more of the values are out of range. |
| void set | ( | unsigned | h, |
| unsigned | m, | ||
| unsigned | s, | ||
| unsigned | ms = 0 |
||
| ) |
Sets the time to a new hour, minute, second, milli-second.
| h | Hours |
| m | Minutes |
| s | Seconds |
| ms | Milliseconds |
| InvalidTime | One or more of the values are out of range. |
| void get | ( | unsigned & | h, |
| unsigned & | m, | ||
| unsigned & | s, | ||
| unsigned & | ms | ||
| ) | const |
Gets the hour, minute, second and millisecond parts of the time.
| Time addSecs | ( | int | secs | ) | const |
This method does not change the time, but returns the time with the seconds added.
| Time addMSecs | ( | Pt::int64_t | ms | ) | const |
This method does not change the time, but returns the time with the milliseconds added.
|
static |
Interprets the passed string as a time-string in ISO-format (hh:mm:ss.hhh) and returns a Time-object. If the string is not in ISO-format, InvalidTime is thrown.