Quick Links: |
#include <bbldc_calendardaterangedaycountadapter.h>
Public Member Functions | |
CalendarDateRangeDayCountAdapter (const bdlt::Calendar &calendar, bslma::Allocator *basicAllocator=0) | |
virtual | ~CalendarDateRangeDayCountAdapter () |
int | daysDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate) const |
const bdlt::Date & | firstDate () const |
const bdlt::Date & | lastDate () const |
double | yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate) const |
bslma::Allocator * | allocator () const |
This class
provides an "adapter" from the specified CONVENTION
, that requires a calendar to compute the day count and the year fraction, to the bbldc::DateRangeDayCount
protocol that can be used for determining values based on dates according to the day-count CONVENTION
.
See Component bbldc_calendardaterangedaycountadapter
bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::CalendarDateRangeDayCountAdapter | ( | const bdlt::Calendar & | calendar, | |
bslma::Allocator * | basicAllocator = 0 | |||
) |
Create a day-count adapter that uses the specified calendar
during invocations of daysDiff
and yearsDiff
. Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used.
virtual bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::~CalendarDateRangeDayCountAdapter | ( | ) | [virtual] |
Destroy this object.
int bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::daysDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate | |||
) | const [virtual] |
Return the (signed) number of days between the specified beginDate
and endDate
as per the CONVENTION
template policy. If beginDate <= endDate
, then the result is non-negative. The behavior is undefined unless, for the calendar
provided at construction, calendar.firstDate() <= beginDate <= calendar.lastDate()
and calendar.firstDate() <= endDate <= calendar.lastDate()
. Note that reversing the order of beginDate
and endDate
negates the result.
Implements bbldc::DateRangeDayCount.
const bdlt::Date& bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::firstDate | ( | ) | const [virtual] |
Return a reference providing non-modifiable access to calendar.firstDate()
for the calendar
provided at construction. Note that this value is the earliest date in the valid range of this day-count convention adaptation.
Implements bbldc::DateRangeDayCount.
const bdlt::Date& bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::lastDate | ( | ) | const [virtual] |
Return a reference providing non-modifiable access to calendar.lastDate()
for the calendar
provided at construction. Note that this value is the latest date in the valid range of this day-count convention adaptation.
Implements bbldc::DateRangeDayCount.
double bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::yearsDiff | ( | const bdlt::Date & | beginDate, | |
const bdlt::Date & | endDate | |||
) | const [virtual] |
Return the (signed fractional) number of years between the specified beginDate
and endDate
as per the CONVENTION
template policy. If beginDate <= endDate
, then the result is non-negative. The behavior is undefined unless, for the calendar
provided at construction, calendar.firstDate() <= beginDate <= calendar.lastDate()
and calendar.firstDate() <= endDate <= calendar.lastDate()
. Note that reversing the order of beginDate
and endDate
negates the result; specifically, |yearsDiff(b, e) + yearsDiff(e, b)| <= 1.0e-15
for all dates b
and e
.
Implements bbldc::DateRangeDayCount.
bslma::Allocator* bbldc::CalendarDateRangeDayCountAdapter< CONVENTION >::allocator | ( | ) | const |
Return the allocator used by this adapter to supply memory.