[#BloombergLP-bbldc-DateRangeDayCount] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bbldc.adoc[bbldc]::DateRangeDayCount :relfileprefix: ../../ :mrdocs: This `class` provides a protocol for determining values based on dates according to derived implementations of specific day‐count conventions. The methods `firstDate` and `lastDate` define a date range for which calculations are valid, to reflect the valid range of, say, a calendar required for the computations. == Synopsis Declared in `<bbldc_daterangedaycount.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class DateRangeDayCount; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bbldc/DateRangeDayCount/2destructor.adoc[`~DateRangeDayCount`] [.small]#[destructor]# [.small]#[virtual]# | Destroy this object. | xref:BloombergLP/bbldc/DateRangeDayCount/daysDiff.adoc[`daysDiff`] [.small]#[virtual]# | Return the (signed) number of days between the specified `beginDate` and `endDate`. If `beginDate <= endDate`, then the result is non‐negative. The behavior is undefined unless `firstDate() <= beginDate <= lastDate()` and `firstDate() <= endDate <= lastDate()`. Note that reversing the order of `beginDate` and `endDate` negates the result. | xref:BloombergLP/bbldc/DateRangeDayCount/firstDate.adoc[`firstDate`] [.small]#[virtual]# | Return a reference providing non‐modifiable access to the earliest date in the valid range of this day‐count convention. | xref:BloombergLP/bbldc/DateRangeDayCount/lastDate.adoc[`lastDate`] [.small]#[virtual]# | Return a reference providing non‐modifiable access to the latest date in the valid range of this day‐count convention. | xref:BloombergLP/bbldc/DateRangeDayCount/yearsDiff.adoc[`yearsDiff`] [.small]#[virtual]# | Return the (signed fractional) number of years between the specified `beginDate` and `endDate`. If `beginDate <= endDate`, then the result is non‐negative. The behavior is undefined unless `firstDate() <= beginDate <= lastDate()` and `firstDate() <= endDate <= lastDate()`. Note that reversing the order of `beginDate` and `endDate` negates the result; specifically, `|yearsDiff(b, e) + yearsDiff(e, b)| <= 1.0e‐15` for all dates `b` and `e`. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bbldc/BasicDateRangeDayCountAdapter.adoc[`BasicDateRangeDayCountAdapter`] | This `class` provides an "adapter" from the specified `CONVENTION` to the `bbldc::DateRangeDayCount` protocol that can be used for determining values based on dates according to the day‐count `CONVENTION`. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter.adoc[`CalendarDateRangeDayCountAdapter`] | This `class` provides an "adapter" from the specified `CONVENTION`, that requires a calendar to compute the day count and the year fraction, to the `bbldc::DateRangeDayCount` protocol that can be used for determining values based on dates according to the day‐count `CONVENTION`. | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter.adoc[`PeriodDateRangeDayCountAdapter`] | This `class` provides an "adapter" from the specified `CONVENTION`, that requires a set of periods to compute the year fraction, to the `bbldc::DateRangeDayCount` protocol that can be used for determining values based on dates according to the day‐count `CONVENTION`. | xref:BloombergLP/bbldc/TerminatedDateRangeDayCountAdapter.adoc[`TerminatedDateRangeDayCountAdapter`] | This `class` provides an "adapter" from the specified `CONVENTION` to the `bbldc::DateRangeDayCount` protocol that can be used for determining values based on dates according to the day‐count `CONVENTION`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#