Quick Links: |
#include <bbldc_perioddaycountutil.h>
Static Public Member Functions | |
static int | daysDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate, DayCountConvention::Enum convention) |
static bool | isSupported (DayCountConvention::Enum convention) |
static double | yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate, const bsl::vector< bdlt::Date > &periodDate, double periodYearDiff, DayCountConvention::Enum convention) |
static double | yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate, const std::vector< bdlt::Date > &periodDate, double periodYearDiff, DayCountConvention::Enum convention) |
This struct
provides a namespace for a suite of pure functions that compute values based on dates according to enumerated day-count conventions.
See Component bbldc_perioddaycountutil
static int bbldc::PeriodDayCountUtil::daysDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate, | |||
DayCountConvention::Enum | convention | |||
) | [static] |
Return the (signed) number of days between the specified beginDate
and endDate
according to the specified day-count convention
. If beginDate <= endDate
then the result is non-negative. The behavior is undefined unless isSupported(convention)
. Note that reversing the order of beginDate
and endDate
negates the result.
static bool bbldc::PeriodDayCountUtil::isSupported | ( | DayCountConvention::Enum | convention | ) | [static] |
Return true
if the specified convention
is valid for use in daysDiff
and yearsDiff
, and false
otherwise.
static double bbldc::PeriodDayCountUtil::yearsDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate, | |||
const bsl::vector< bdlt::Date > & | periodDate, | |||
double | periodYearDiff, | |||
DayCountConvention::Enum | convention | |||
) | [static] |
static double bbldc::PeriodDayCountUtil::yearsDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate, | |||
const std::vector< bdlt::Date > & | periodDate, | |||
double | periodYearDiff, | |||
DayCountConvention::Enum | convention | |||
) | [static] |
Return the (signed fractional) number of years between the specified beginDate
and endDate
according to the specified 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, min(beginDate, endDate) >= periodDate.front()
, max(beginDate, endDate) <= periodDate.back()
, and isSupported(convention)
. Note that reversing the order of beginDate
and endDate
negates the result; specifically, |yearsDiff(b,e,pd,pyd,c) + yearsDiff(e,b,pd,pyd,c)| <= 1.0e-15
for all dates b
and e
, periods pd
, and year fraction per period pyd
.