This struct
provides a namespace for a suite of pure functions that compute values based on dates according to the ICMA Actual/Actual day-count convention.
double bbldc::PeriodIcmaActualActual::yearsDiff |
( |
const bdlt::Date & |
beginDate, |
|
|
const bdlt::Date & |
endDate, |
|
|
const std::vector< bdlt::Date > & |
periodDate, |
|
|
double |
periodYearDiff |
|
) |
| |
|
inlinestatic |
Return the (signed fractional) number of years between the specified beginDate
and endDate
according to the ICMA Actual/Actual day-count convention with periods starting on the specified range [ periodDateBegin, periodDateEnd )
values and each period having a duration of the specified periodYearDiff
years (e.g., 0.25 for quarterly periods). If beginDate <= endDate
, then the result is non-negative. The behavior is undefined unless 2 <= periodDateEnd - periodDateBegin
, the values contained in the range are unique and sorted from minimum to maximum, *periodDateBegin <= beginDate <= *(periodDateEnd - 1)
, and *periodDateBegin <= endDate <= *(periodDateEnd - 1)
. Note that reversing the order of beginDate
and endDate
negates the result; specifically, |yearsDiff(b, e, pd, pyd) + yearsDiff(e, b, pd, pyd)| <= 1.0e-15
for all dates b
and e
, periods pd
, and year fraction per period pyd
.