[#BloombergLP-bbldc-PeriodDateRangeDayCountAdapter] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bbldc.adoc[bbldc]::PeriodDateRangeDayCountAdapter :relfileprefix: ../../ :mrdocs: 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`. == Synopsis Declared in `<bbldc_perioddaterangedaycountadapter.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class CONVENTION> class PeriodDateRangeDayCountAdapter : 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/PeriodDateRangeDayCountAdapter/2constructor-05.adoc[`PeriodDateRangeDayCountAdapter`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter/2destructor.adoc[`~PeriodDateRangeDayCountAdapter`] [.small]#[destructor]# [.small]#[virtual]# | Destroy this object. | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter/allocator.adoc[`allocator`] | Return the allocator used by this adapter to supply memory. | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter/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. Note that reversing the order of `beginDate` and `endDate` negates the result. | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter/firstDate.adoc[`firstDate`] [.small]#[virtual]# | Return a reference providing non‐modifiable access to `periodDate.front()` for the `periodDate` provided at construction. Note that this value is the earliest date in the valid range of this day‐count convention adaptation. | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter/lastDate.adoc[`lastDate`] [.small]#[virtual]# | Return a reference providing non‐modifiable access to `periodDate.back()` for the `periodDate` provided at construction. Note that this value is the latest date in the valid range of this day‐count convention adaptation. | xref:BloombergLP/bbldc/PeriodDateRangeDayCountAdapter/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 `periodDate` provided at construction, `periodDate.front() <= beginDate <= periodDate.back()` and `periodDate.front() <= endDate <= periodDate.back()`. 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]#