BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bbldc_basicactual365fixed

Detailed Description

Outline

Purpose

Provide stateless functions for the Actual/365 (fixed) convention.

Classes

Description

This component provides a struct, bbldc::BasicActual365Fixed, that serves as a namespace for defining a suite of date-related functions used to compute the day count and year fraction between two dates as per the Actual/365 (fixed) day-count convention. In this day-count convention, we simply measure the number of days occurring in a time period, and to calculate years, divide that by 365. Note that this means the number of years between January 1, 2004 and January 1, 2005 comes out to about 1.00274. No end-of-month rule adjustments are made. Given beginDate and endDate:

yearsDiff ::= sign(endDate - beginDate) *
(days between beginDate and endDate) / 365.0

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::BasicActual365Fixed methods. First, create four bdlt::Date variables:

const bdlt::Date dA(2004, 2, 1);
const bdlt::Date dB(2004, 3, 1);
const bdlt::Date dC(2004, 5, 1);
const bdlt::Date dD(2005, 2, 1);
Definition bdlt_date.h:294

Then, compute the day count between some pairs of these dates:

int daysDiff;
assert( 29 == daysDiff);
assert( 90 == daysDiff);
assert(366 == daysDiff);
assert( 61 == daysDiff);
static int daysDiff(const bdlt::Date &beginDate, const bdlt::Date &endDate)
Definition bbldc_basicactual365fixed.h:151

Finally, compute the year fraction between some of the dates:

double yearsDiff;
// Need fuzzy comparison since 'yearsDiff' is a 'double'.
assert(yearsDiff > 0.2465 && yearsDiff < 0.2466);
assert(yearsDiff > 1.0027 && yearsDiff < 1.0028);
static double yearsDiff(const bdlt::Date &beginDate, const bdlt::Date &endDate)