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>

template<class CONVENTION>
class CalendarDateRangeDayCountAdapter
    : public DateRangeDayCount

Base Classes

Name

Description

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

Name

Description

CalendarDateRangeDayCountAdapter [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.

~CalendarDateRangeDayCountAdapter [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. 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.

firstDate [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.

lastDate [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.

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 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.

Created with MrDocs