BloombergLP::bbldc::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.

Synopsis

Declared in <bbldc_perioddaterangedaycountadapter.h>

template<class CONVENTION>
class PeriodDateRangeDayCountAdapter
    : public DateRangeDayCount

Base Classes

NameDescription
DateRangeDayCountThis 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

NameDescription
PeriodDateRangeDayCountAdapter [constructor]Constructors
~PeriodDateRangeDayCountAdapter [destructor] [virtual]Destroy this object.
allocator Return the allocator used by this adapter to supply memory.
daysDiff [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.
firstDate [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.
lastDate [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.
yearsDiff [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.