[#BloombergLP-bdlt-DateUtil] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::DateUtil :relfileprefix: ../../ :mrdocs: This `struct` provides a namespace for utility functions that provide non‐primitive operations on dates. == Synopsis Declared in `<bdlt_dateutil.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct DateUtil; ---- == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/DateUtil/addMonths.adoc[`addMonths`] | Return the date that is the specified `numMonths` from the specified `original` date, adjusted as necessary according to the specified `eomFlag` (end‐of‐month flag). If `eomFlag` is `true` and `original` is the last day of the month, then adjust the result to be the last day of the month; if `eomFlag` is `false`, then no such adjustment is performed. In any case, if the day of the month in `original` does not exist in the month of the result (e.g., February 29, 2001), move the resulting date to the last day of the month. The behavior is undefined unless the operation results in a valid `Date` value. Note that `numMonths` may be negative. | xref:BloombergLP/bdlt/DateUtil/addMonthsEom.adoc[`addMonthsEom`] | Return the date that is the specified `numMonths` from the specified `original` date, adjusted as necessary according to the following (end‐of‐month) rules: (1) if `original` is the last day of a month, adjust the result to be the last day of the month, and (2) if the day of the month in `original` does not exist in the month of the result (e.g., February 30), move the resulting date to the last day of the month. The behavior is undefined unless the operation results in a valid `Date` value. Note that `numMonths` may be negative. | xref:BloombergLP/bdlt/DateUtil/addMonthsNoEom.adoc[`addMonthsNoEom`] | Return the date that is the specified `numMonths` from the specified `original` date, adjusted as necessary according to the following (non‐end‐of‐month) rule: if the day of the month in `original` does not exist in the month of the result (e.g., February 29, 2001), move the resulting date to the last day of the month. The behavior is undefined unless the operation results in a valid `Date` value. Note that `numMonths` may be negative. | xref:BloombergLP/bdlt/DateUtil/addYears.adoc[`addYears`] | Return the date that is the specified `numYears` from the specified `original` date, adjusted as necessary according to the specified `eomFlag` (end‐of‐month flag). If `eomFlag` is `true` and `original` is the last day of the month, then adjust the result to be the last day of the month; if `eomFlag` is `false`, then no such adjustment is performed. In any case, if the day of the month in `original` does not exist in the month of the result (e.g., February 29, 2001), move the resulting date to the last day of the month. The behavior is undefined unless the operation results in a valid `Date` value. Note that `numYears` may be negative. | xref:BloombergLP/bdlt/DateUtil/addYearsEom.adoc[`addYearsEom`] | Return the date that is the specified `numYears` from the specified `original` date, adjusted as necessary according to the following (end‐of‐month) rules: (1) if `original` is the last day of a month, adjust the result to be the last day of the month, and (2) if the day of the month in `original` does not exist in the month of the result (e.g., February 29, 2001), move the resulting date to the last day of the month. The behavior is undefined unless the operation results in a valid `Date` value. Note that `numYears` may be negative. | xref:BloombergLP/bdlt/DateUtil/addYearsNoEom.adoc[`addYearsNoEom`] | Return the date that is the specified `numYears` from the specified `original` date, adjusted as necessary according to the following (non‐end‐of‐month) rule: if the day of the month in `original` does not exist in the month of the result (e.g., February 30), move the resulting date to the last day of the month. The behavior is undefined unless the operation results in a valid `Date` value. Note that `numYears` may be negative. | xref:BloombergLP/bdlt/DateUtil/convertFromYYYYMMDD.adoc[`convertFromYYYYMMDD`] | Load, into the specified `result`, the `Date` value represented by the specified `yyyymmddValue` in the "YYYYMMDD" format. Return 0 on success, and a non‐zero value, with no effect on `result`, if `yyyymmddValue` does not represent a valid `Date`. | xref:BloombergLP/bdlt/DateUtil/convertFromYYYYMMDDRaw.adoc[`convertFromYYYYMMDDRaw`] | Return the `Date` value represented by the specified `yyyymmddValue` in the "YYYYMMDD" format. The behavior is undefined unless `yyyymmddValue` represents a valid `Date`. | xref:BloombergLP/bdlt/DateUtil/convertToYYYYMMDD.adoc[`convertToYYYYMMDD`] | Return the integer value in the "YYYYMMDD" format that represents the specified `date`. | xref:BloombergLP/bdlt/DateUtil/earliestDayOfWeekInMonth.adoc[`earliestDayOfWeekInMonth`] | Return the earliest date in the specified `month` of the specified `year` that falls on the specified `dayOfWeek`. The behavior is undefined unless `1 <= year <= 9999` and `1 <= month <= 12`. | xref:BloombergLP/bdlt/DateUtil/fromYmd.adoc[`fromYmd`] | Return an `optional` having a `Date` with the specified `year`, `month`, and `day`, if those form a valid `Date` (see `Date::isValid`); otherwise return an `optional` without a value. | xref:BloombergLP/bdlt/DateUtil/isValidYYYYMMDD.adoc[`isValidYYYYMMDD`] | Return `true` if the specified `yyyymmddValue` represents a valid `Date` value in the "YYYYMMDD" format, and `false` otherwise. | xref:BloombergLP/bdlt/DateUtil/lastDayInMonth.adoc[`lastDayInMonth`] | Return the latest date in the specified `month` of the specified `year`. The behavior is undefined unless `1 <= year <= 9999` and `1 <= month <= 12`. | xref:BloombergLP/bdlt/DateUtil/lastDayOfWeekInMonth.adoc[`lastDayOfWeekInMonth`] | Return the latest date in the specified `month` of the specified `year` that falls on the specified `dayOfWeek`. The behavior is undefined unless `1 <= year <= 9999` and `1 <= month <= 12`. | xref:BloombergLP/bdlt/DateUtil/nextDayOfWeek.adoc[`nextDayOfWeek`] | Return the first date _after_ the specified `date` that falls on the specified `dayOfWeek`. The behavior is undefined unless the resulting date is no later than 9999/12/31. | xref:BloombergLP/bdlt/DateUtil/nextDayOfWeekInclusive.adoc[`nextDayOfWeekInclusive`] | Return the first date _on_ or _after_ the specified `date` that falls on the specified `dayOfWeek`. The behavior is undefined unless the resulting date is no later than 9999/12/31. | xref:BloombergLP/bdlt/DateUtil/nthDayOfWeekInMonth.adoc[`nthDayOfWeekInMonth`] | Return the date in the specified `month` of the specified `year` corresponding to the specified `n`th occurrence of the specified `dayOfWeek`. If `n < 0`, return the date corresponding to the `‐n`th occurrence of the `dayOfWeek` counting from the end of the `month` towards the first of the `month`. If `5 == n` and a result cannot be found in `month`, then return the date of the first `dayOfWeek` in the following month. If `‐5 == n` and a result cannot be found in `month`, then return the date of the last `dayOfWeek` in the previous month. The behavior is undefined unless `1 <= year <= 9999`, `1 <= month <= 12`, `n != 0`, `‐5 <= n <= 5`, and the resulting date is neither earlier than 0001/01/01 nor later than 9999/12/31. | xref:BloombergLP/bdlt/DateUtil/previousDayOfWeek.adoc[`previousDayOfWeek`] | Return the last date _before_ the specified `date` that falls on the specified `dayOfWeek`. The behavior is undefined unless the resulting date is no earlier than 1/1/1. | xref:BloombergLP/bdlt/DateUtil/previousDayOfWeekInclusive.adoc[`previousDayOfWeekInclusive`] | Return the last date _on_ or _before_ the specified `date` that falls on the specified `dayOfWeek`. The behavior is undefined unless the resulting date is no earlier than 1/1/1. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#