[#BloombergLP-bdlt-Date] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::Date :relfileprefix: ../../ :mrdocs: Value‐semantic type representing a date in the Unix (POSIX) calendar. == Synopsis Declared in `<bdlt_date.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Date; ---- == Description This class implements a complex‐constrained, value‐semantic type for representing dates according to the Unix (POSIX) calendar. Each object of this class _always_ represents a _valid_ date value in the range `[0001JAN01 .. 9999DEC31]` inclusive. The interface of this class supports `Date` values expressed in terms of either year/month/day (the canonical representation) or year/day‐of‐year (an alternate representation). See []Date Values and Their Representations) for details. == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/Date/2constructor-0e.adoc[`Date`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bdlt/Date/2destructor.adoc[`~Date`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/bdlt/Date/operator_assign.adoc[`operator=`] | Assign to this object the value of the specified `rhs` date, and return a reference providing modifiable access to this object. | xref:BloombergLP/bdlt/Date/addDaysIfValid.adoc[`addDaysIfValid`] | Add `numDays` if the result is a supported date; otherwise do nothing. | xref:BloombergLP/bdlt/Date/bdexStreamIn.adoc[`bdexStreamIn`] | Assign to this object the value read from the specified BDEX stream. | xref:BloombergLP/bdlt/Date/bdexStreamOut.adoc[`bdexStreamOut`] | Write this date to the specified output stream. | xref:BloombergLP/bdlt/Date/day.adoc[`day`] | Return the day of the month in the range `[1 .. 31]` of this date. | xref:BloombergLP/bdlt/Date/dayOfWeek.adoc[`dayOfWeek`] | Return the day of the week in the range `[DayOfWeek::e_SUN .. DayOfWeek::e_SAT]` of this date. | xref:BloombergLP/bdlt/Date/dayOfYear.adoc[`dayOfYear`] | Return the day of the year in the range `[1 .. 366]` of this date. | xref:BloombergLP/bdlt/Date/getYearDay.adoc[`getYearDay`] | Load, into the specified `year` and `dayOfYear`, the respective `year` and `dayOfYear` attribute values of this date. | xref:BloombergLP/bdlt/Date/getYearMonthDay.adoc[`getYearMonthDay`] | Load, into the specified `year`, `month`, and `day`, the respective `year`, `month`, and `day` attribute values of this date. | xref:BloombergLP/bdlt/Date/month.adoc[`month`] | Return the month of the year in the range `[1 .. 12]` of this date. | xref:BloombergLP/bdlt/Date/monthOfYear.adoc[`monthOfYear`] | Return the month of the year in the range `[MonthOfYear::e_JAN .. MonthOfYear::e_DEC]` of this date. | xref:BloombergLP/bdlt/Date/operator_inc.adoc[`operator++`] | Advance this date by one day. | xref:BloombergLP/bdlt/Date/operator_plus_eq.adoc[`operator+=`] | Advance this date by the specified (signed) number of days. | xref:BloombergLP/bdlt/Date/operator_dec.adoc[`operator‐‐`] | Move this date earlier by one day. | xref:BloombergLP/bdlt/Date/operator_minus_eq.adoc[`operator‐=`] | Move this date earlier by the specified (signed) number of days. | xref:BloombergLP/bdlt/Date/print.adoc[`print`] | Write this date to the specified output stream in a human‐readable form. | xref:BloombergLP/bdlt/Date/setYearDay.adoc[`setYearDay`] | Set this date to the specified `year` and `dayOfYear`. | xref:BloombergLP/bdlt/Date/setYearDayIfValid.adoc[`setYearDayIfValid`] | Set this date from `year` and `dayOfYear` if they form a valid value. | xref:BloombergLP/bdlt/Date/setYearMonthDay.adoc[`setYearMonthDay`] | Set this date to the specified `year`, `month`, and `day`. | xref:BloombergLP/bdlt/Date/setYearMonthDayIfValid.adoc[`setYearMonthDayIfValid`] | Set this date from Y/M/D if they form a valid value; otherwise do nothing. | xref:BloombergLP/bdlt/Date/streamOut.adoc[`streamOut`] | Write this date to the specified stream in a single‐line format. | xref:BloombergLP/bdlt/Date/validateAndSetYearDay.adoc[`validateAndSetYearDay`] | Set this date from `year` and `dayOfYear` if they form a valid value. | xref:BloombergLP/bdlt/Date/validateAndSetYearMonthDay.adoc[`validateAndSetYearMonthDay`] | Set this date from Y/M/D if they form a valid value; otherwise do nothing. | xref:BloombergLP/bdlt/Date/year.adoc[`year`] | Return the year in the range `[1 .. 9999]` of this date. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/Date/isValid-09.adoc[`isValid`] | `isValid` overloads | xref:BloombergLP/bdlt/Date/isValidYearDay.adoc[`isValidYearDay`] | Return `true` if `year` and `dayOfYear` form a valid `Date` value. | xref:BloombergLP/bdlt/Date/isValidYearMonthDay.adoc[`isValidYearMonthDay`] | Return `true` if `year`, `month`, and `day` form a valid `Date` value. | xref:BloombergLP/bdlt/Date/maxSupportedBdexVersion-06.adoc[`maxSupportedBdexVersion`] | `maxSupportedBdexVersion` overloads | xref:BloombergLP/bdlt/Date/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-09.adoc[BloombergLP::bdlt::hashAppend]` | Invoke `hashAlg` on the specified `Date` `object`. | `xref:BloombergLP/bdlt/operator_minus-00f.adoc[BloombergLP::bdlt::operator‐]` | Return the signed number of days between two dates. | `xref:BloombergLP/bdlt/operator_minus-09c.adoc[BloombergLP::bdlt::operator‐]` | Return the date that is earlier by `numDays` from the specified `date`. | `xref:BloombergLP/bdlt/operator_plus-06b.adoc[BloombergLP::bdlt::operator+]` | Return the date that is later by `numDays` from the specified `date`. | `xref:BloombergLP/bdlt/operator_plus-04.adoc[BloombergLP::bdlt::operator+]` | Return the date that is later by `numDays` from the specified `date`. | `xref:BloombergLP/bdlt/operator_gt-0c.adoc[BloombergLP::bdlt::operator>]` | Return `true` if the specified `lhs` date is later than the specified `rhs` date, and `false` otherwise. | `xref:BloombergLP/bdlt/operator_ge-079.adoc[BloombergLP::bdlt::operator>=]` | Return `true` if the specified `lhs` date is later than or the same as the specified `rhs` date, and `false` otherwise. | `xref:BloombergLP/bdlt/operator_le-04.adoc[BloombergLP::bdlt::operator<=]` | Return `true` if the specified `lhs` date is earlier than or the same as the specified `rhs` date, and `false` otherwise. | `xref:BloombergLP/bdlt/operator_lt-01.adoc[BloombergLP::bdlt::operator<]` | Return `true` if the specified `lhs` date is earlier than the specified `rhs` date, and `false` otherwise. | `xref:BloombergLP/bdlt/operator_not_eq-0cd.adoc[BloombergLP::bdlt::operator!=]` | Return `true` if the two dates do not have the same value. | `xref:BloombergLP/bdlt/operator_eq-057.adoc[BloombergLP::bdlt::operator==]` | Return `true` if the two dates have the same value. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/operator_inc-0f.adoc[`operator++`] | Advance `date` by one day and return its previous value. | xref:BloombergLP/bdlt/operator_dec-01.adoc[`operator‐‐`] | Move `date` earlier by one day and return its previous value. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/PackedCalendar_DateRef.adoc[`PackedCalendar_DateRef`] | Reference to a `Date` for holiday and business‐day iterators. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#