This struct provides a namespace for utility functions that provide non‐primitive operations on dates.

Synopsis

Declared in <bdlt_dateutil.h>

struct DateUtil;

Static Member Functions

Name

Description

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.

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.

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.

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.

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.

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.

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.

convertFromYYYYMMDDRaw

Return the Date value represented by the specified yyyymmddValue in the "YYYYMMDD" format. The behavior is undefined unless yyyymmddValue represents a valid Date.

convertToYYYYMMDD

Return the integer value in the "YYYYMMDD" format that represents the specified date.

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.

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.

isValidYYYYMMDD

Return true if the specified yyyymmddValue represents a valid Date value in the "YYYYMMDD" format, and false otherwise.

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.

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.

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.

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.

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.

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.

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.

Created with MrDocs