Quick Links: |
#include <bbldc_periodicmaactualactual.h>
Static Public Member Functions | |
static int | daysDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate) |
static double | yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate, const bdlt::Date *periodDateBegin, const bdlt::Date *periodDateEnd, double periodYearDiff) |
static double | yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate, const bsl::vector< bdlt::Date > &periodDate, double periodYearDiff) |
static double | yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate, const std::vector< bdlt::Date > &periodDate, double periodYearDiff) |
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.
See Component bbldc_periodicmaactualactual
static int bbldc::PeriodIcmaActualActual::daysDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate | |||
) | [static] |
Return the (signed) number of days between the specified beginDate
and endDate
according to the ICMA Actual/Actual day-count convention. If beginDate <= endDate
, then the result is non-negative. Note that reversing the order of beginDate
and endDate
negates the result.
static double bbldc::PeriodIcmaActualActual::yearsDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate, | |||
const bdlt::Date * | periodDateBegin, | |||
const bdlt::Date * | periodDateEnd, | |||
double | periodYearDiff | |||
) | [static] |
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
.
static double bbldc::PeriodIcmaActualActual::yearsDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate, | |||
const bsl::vector< bdlt::Date > & | periodDate, | |||
double | periodYearDiff | |||
) | [static] |
static double bbldc::PeriodIcmaActualActual::yearsDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate, | |||
const std::vector< bdlt::Date > & | periodDate, | |||
double | periodYearDiff | |||
) | [static] |
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 periodDate
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 periodDate.size() >= 2
, the values contained in periodDate
are unique and sorted from minimum to maximum, 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, pd, pyd) + yearsDiff(e, b, pd, pyd)| <= 1.0e-15
for all dates b
and e
, periods pd
, and year fraction per period pyd
.