[#BloombergLP-bbldc-CalendarDateRangeDayCountAdapter] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bbldc.adoc[bbldc]::CalendarDateRangeDayCountAdapter :relfileprefix: ../../ :mrdocs: 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`. == Synopsis Declared in `<bbldc_calendardaterangedaycountadapter.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class CONVENTION> class CalendarDateRangeDayCountAdapter : public xref:BloombergLP/bbldc/DateRangeDayCount.adoc[DateRangeDayCount] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bbldc/DateRangeDayCount.adoc[DateRangeDayCount]` | 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. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/2constructor.adoc[`CalendarDateRangeDayCountAdapter`] [.small]#[constructor]# | Create a day‐count adapter that uses the specified `calendar` during invocations of `daysDiff` and `yearsDiff`. Optionally specify a `basicAllocator` used to supply memory. If `basicAllocator` is 0, the currently installed default allocator is used. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/2destructor.adoc[`~CalendarDateRangeDayCountAdapter`] [.small]#[destructor]# [.small]#[virtual]# | Destroy this object. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/allocator.adoc[`allocator`] | Return the allocator used by this adapter to supply memory. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/daysDiff.adoc[`daysDiff`] [.small]#[virtual]# | Return the (signed) number of days between the specified `beginDate` and `endDate` as per the `CONVENTION` template policy. If `beginDate <= endDate`, then the result is non‐negative. The behavior is undefined unless, for the `calendar` provided at construction, `calendar.firstDate() <= beginDate <= calendar.lastDate()` and `calendar.firstDate() <= endDate <= calendar.lastDate()`. Note that reversing the order of `beginDate` and `endDate` negates the result. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/firstDate.adoc[`firstDate`] [.small]#[virtual]# | Return a reference providing non‐modifiable access to `calendar.firstDate()` for the `calendar` provided at construction. Note that this value is the earliest date in the valid range of this day‐count convention adaptation. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/lastDate.adoc[`lastDate`] [.small]#[virtual]# | Return a reference providing non‐modifiable access to `calendar.lastDate()` for the `calendar` provided at construction. Note that this value is the latest date in the valid range of this day‐count convention adaptation. | xref:BloombergLP/bbldc/CalendarDateRangeDayCountAdapter/yearsDiff.adoc[`yearsDiff`] [.small]#[virtual]# | Return the (signed fractional) number of years between the specified `beginDate` and `endDate` as per the `CONVENTION` template policy. If `beginDate <= endDate`, then the result is non‐negative. The behavior is undefined unless, for the `calendar` provided at construction, `calendar.firstDate() <= beginDate <= calendar.lastDate()` and `calendar.firstDate() <= endDate <= calendar.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`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#