[#BloombergLP-bdlt-Time] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::Time :relfileprefix: ../../ :mrdocs: Value‐semantic type representing the time of day to microsecond resolution. == Synopsis Declared in `<bdlt_time.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Time; ---- == Description This `class` implements a value‐semantic type that represents the time of day to a resolution of one microsecond. Each object of this (almost) simply constrained attribute class _always_ represents a valid time value to a resolution of one microsecond. The valid range for times is 00:00:00.000000 through 23:59:59.999999, except that 24:00:00.000000 represents the default‐constructed value. The value 24:00:00.000000 behaves, in most cases, as if it were the value 00:00:00.000000; however, for all relational comparison operators, 24:00:00.000000 is not a valid argument and, therefore, would result in undefined behavior. Each add operation on a `Time` object returns the (signed) number of times that the 23:59:59.999999 ‐ 00:00:00.000000 boundary was crossed while performing the operation. Attempting to construct a `Time` with any attribute outside its valid range (or with an hour attribute value of 24 and any other attribute non‐zero) has undefined behavior. == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/Time/2constructor-07.adoc[`Time`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bdlt/Time/operator_assign.adoc[`operator=`] | Assign to this time object the value of the specified `rhs` object, and return a reference providing modifiable access to this object. | xref:BloombergLP/bdlt/Time/addHours.adoc[`addHours`] | Increase this time by `hours`; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/addInterval.adoc[`addInterval`] | Increase this time by `interval`; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/addMicroseconds.adoc[`addMicroseconds`] | Increase this time by `microseconds`; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/addMilliseconds.adoc[`addMilliseconds`] | Increase this time by `milliseconds`; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/addMinutes.adoc[`addMinutes`] | Increase this time by `minutes`; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/addSeconds.adoc[`addSeconds`] | Increase this time by `seconds`; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/addTime.adoc[`addTime`] | Add the specified signed time fields; return midnight‐boundary crossings. | xref:BloombergLP/bdlt/Time/bdexStreamIn.adoc[`bdexStreamIn`] | Assign to this object the value read from the specified input stream. | xref:BloombergLP/bdlt/Time/bdexStreamOut.adoc[`bdexStreamOut`] | Write this object to the specified output stream using BDEX. | xref:BloombergLP/bdlt/Time/getTime.adoc[`getTime`] | Load the time‐of‐day attributes of this object into the given addresses. | xref:BloombergLP/bdlt/Time/hour.adoc[`hour`] | Return the value of the `hour` attribute of this time object. | xref:BloombergLP/bdlt/Time/microsecond.adoc[`microsecond`] | Return the value of the `microsecond` attribute of this time object. | xref:BloombergLP/bdlt/Time/millisecond.adoc[`millisecond`] | Return the value of the `millisecond` attribute of this time object. | xref:BloombergLP/bdlt/Time/minute.adoc[`minute`] | Return the value of the `minute` attribute of this time object. | xref:BloombergLP/bdlt/Time/operator_plus_eq.adoc[`operator+=`] | Add to this time object the value of the specified `rhs` datetime interval, and return a reference providing modifiable access to this object. | xref:BloombergLP/bdlt/Time/operator_minus_eq.adoc[`operator‐=`] | Subtract from this time object the value of the specified `rhs` datetime interval, and return a reference providing modifiable access to this object. | xref:BloombergLP/bdlt/Time/print.adoc[`print`] | Write this time to the specified output stream in a human‐readable form. | xref:BloombergLP/bdlt/Time/printToBuffer.adoc[`printToBuffer`] | Write a textual representation of this time into `result`. | xref:BloombergLP/bdlt/Time/second.adoc[`second`] | Return the value of the `second` attribute of this time object. | xref:BloombergLP/bdlt/Time/setHour.adoc[`setHour`] | Set the hour attribute of this time object. | xref:BloombergLP/bdlt/Time/setHourIfValid.adoc[`setHourIfValid`] | Set the hour attribute if it is in range; otherwise do nothing. | xref:BloombergLP/bdlt/Time/setMicrosecond.adoc[`setMicrosecond`] | Set the microsecond attribute of this time object. | xref:BloombergLP/bdlt/Time/setMicrosecondIfValid.adoc[`setMicrosecondIfValid`] | Set the microsecond attribute if it is in range; otherwise do nothing. | xref:BloombergLP/bdlt/Time/setMillisecond.adoc[`setMillisecond`] | Set the millisecond attribute of this time object. | xref:BloombergLP/bdlt/Time/setMillisecondIfValid.adoc[`setMillisecondIfValid`] | Set the millisecond attribute if it is in range; otherwise do nothing. | xref:BloombergLP/bdlt/Time/setMinute.adoc[`setMinute`] | Set the minute attribute of this time object. | xref:BloombergLP/bdlt/Time/setMinuteIfValid.adoc[`setMinuteIfValid`] | Set the minute attribute if it is in range; otherwise do nothing. | xref:BloombergLP/bdlt/Time/setSecond.adoc[`setSecond`] | Set the second attribute of this time object. | xref:BloombergLP/bdlt/Time/setSecondIfValid.adoc[`setSecondIfValid`] | Set the second attribute if it is in range; otherwise do nothing. | xref:BloombergLP/bdlt/Time/setTime.adoc[`setTime`] | Set this time from the specified time‐of‐day fields. | xref:BloombergLP/bdlt/Time/setTimeIfValid.adoc[`setTimeIfValid`] | Set this time from fields if they form a valid value; otherwise do nothing. | xref:BloombergLP/bdlt/Time/streamOut.adoc[`streamOut`] | Format this time to the specified output `stream`, and return a reference to the modifiable `stream`. | xref:BloombergLP/bdlt/Time/validateAndSetTime.adoc[`validateAndSetTime`] | Set this time from fields if they form a valid value; otherwise do nothing. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/Time/isValid.adoc[`isValid`] | Return `true` if the specified fields form a valid `Time` value. | xref:BloombergLP/bdlt/Time/maxSupportedBdexVersion-06.adoc[`maxSupportedBdexVersion`] | `maxSupportedBdexVersion` overloads | xref:BloombergLP/bdlt/Time/maxSupportedVersion.adoc[`maxSupportedVersion`] | Return the most current BDEX streaming version number supported by this class. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bdlt/hashAppend-06d.adoc[BloombergLP::bdlt::hashAppend]` | Invoke the specified `hashAlg` on the specified `Time` `object`. | `xref:BloombergLP/bdlt/operator_gt-0a.adoc[BloombergLP::bdlt::operator>]` | Return `true` if `lhs` is later than `rhs`. | `xref:BloombergLP/bdlt/operator_ge-0f.adoc[BloombergLP::bdlt::operator>=]` | Return `true` if `lhs` is later than or equal to `rhs`. | `xref:BloombergLP/bdlt/operator_le-0f.adoc[BloombergLP::bdlt::operator<=]` | Return `true` if `lhs` is earlier than or equal to `rhs`. | `xref:BloombergLP/bdlt/operator_lt-0a.adoc[BloombergLP::bdlt::operator<]` | Return `true` if `lhs` is earlier than `rhs`. | `xref:BloombergLP/bdlt/operator_not_eq-0ad.adoc[BloombergLP::bdlt::operator!=]` | Return `true` if the two time objects do not have the same value. | `xref:BloombergLP/bdlt/operator_eq-04c.adoc[BloombergLP::bdlt::operator==]` | Return `true` if the two time objects have the same value. | `xref:BloombergLP/bdlt/operator_minus-003.adoc[BloombergLP::bdlt::operator‐]` | Return a `DatetimeInterval` object initialized with the difference between the specified `lhs` and `rhs` time values. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/operator_plus-082.adoc[`operator+`] | Return a `Time` value that is the sum of the specified `lhs` time and the specified `rhs` datetime interval. | xref:BloombergLP/bdlt/operator_plus-0b.adoc[`operator+`] | Return a `Time` value that is the sum of the specified `lhs` datetime interval and the specified `rhs` time. | xref:BloombergLP/bdlt/operator_minus-03.adoc[`operator‐`] | Return a `Time` value that is the difference between the specified `lhs` time and the specified `rhs` datetime interval. | xref:BloombergLP/bdlt/operator_lt-08c.adoc[`operator<`] | Return `true` if time `lhs` is less than compactable transition `rhs`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#