Quick Links:

bal | bbl | bdl | bsl

Namespaces

Component bbldc_perioddaycountutil
[Package bbldc]

Support for day-count calculations of enum-specified conventions. More...

Namespaces

namespace  bbldc

Detailed Description

Outline
Purpose:
Support for day-count calculations of enum-specified conventions.
Classes:
bbldc::PeriodDayCountUtil enum-specified day-count calculations
See also:
Component bbldc_daycountconvention, Component bbldc_periodicmaactualactual
Description:
This component provides a struct, bbldc::PeriodDayCountUtil, that defines a suite of date-related functions used to compute the day count and the year fraction between two dates as prescribed by an enumerated day-count convention. Specifically, the daysDiff and yearsDiff methods defined in bbldc::PeriodDayCountUtil take a trailing DayCountConvention::Enum argument indicating which particular period-based day-count convention to apply.
Usage:
This section illustrates intended use of this component.
Example 1: Computing Day Count and Year Fraction:
The following snippets of code illustrate how to use bbldc::PeriodDayCountUtil methods. First, create two bdlt::Date variables, d1 and d2:
  const bdlt::Date d1(2003, 10, 19);
  const bdlt::Date d2(2003, 12, 31);
Then, create a schedule of period dates, sched, corresponding to a quarterly payment (periodYearDiff == 0.25):
  bsl::vector<bdlt::Date> sched;
  sched.push_back(bdlt::Date(2003, 10, 1));
  sched.push_back(bdlt::Date(2004,  1, 1));
Now, compute the day count between d1 and d2 according to the ICMA Actual/Actual day-count convention: Finally, compute the year fraction between the two dates according to the ICMA Actual/Actual day-count convention:
  const double yearsDiff = bbldc::PeriodDayCountUtil::yearsDiff(
                     d1,
                     d2,
                     sched,
                     0.25,
                     bbldc::DayCountConvention::e_PERIOD_ICMA_ACTUAL_ACTUAL);
  // Need fuzzy comparison since 'yearsDiff' is a 'double'.
  assert(yearsDiff > 0.1983 && yearsDiff < 0.1985);