|
BDE 4.14.0 Production release
|
Provide a parameterized day-count convention implementation.
This component provides a parameterized (template) implementation, bbldc::PeriodDateRangeDayCountAdapter, of the bbldc::DateRangeDayCount protocol. The template argument can be any type supporting the following two class methods.
The template class bbldc::PeriodDateRangeDayCountAdapter provides convenient support for run-time polymorphic choice of day-count conventions (via conventional use of a base-class pointer or reference) without having to implement each derived type explicitly. In this sense, bbldc::PeriodDateRangeDayCountAdapter adapts the various concrete period-based day-count convention classes (e.g., bbldc::PeriodIcmaActualActual) to a run-time binding mechanism.
The bbldc::DateRangeDayCount protocol requires two methods, firstDate and lastDate, that define a date range for which calculations are valid, to reflect the valid range of, say, a calendar required for the computations. For "period" day-count implementations, the valid date range is from the first to the last period date.
This section illustrates intended use of this component.
This example shows the procedure for using bbldc::PeriodDateRangeDayCountAdapter to adapt the bbldc::PeriodIcmaActualActual day-count convention to the bbldc::DateRangeDayCount protocol, and then the use of the day-count methods. First, we create a schedule of period dates, sched, corresponding to a quarterly payment (periodYearDiff == 0.25):
Then, we define an instance of the adapted day-count convention and obtain a reference to the bbldc::DateRangeDayCount:
Next, create two bdlt::Date variables, d1 and d2, with which to use the day-count convention methods:
Now, use the base-class reference to compute the day count between the two dates:
Finally, use the base-class reference to compute the year fraction between the two dates: