本文整理汇总了C++中DayCounter::dayCount方法的典型用法代码示例。如果您正苦于以下问题:C++ DayCounter::dayCount方法的具体用法?C++ DayCounter::dayCount怎么用?C++ DayCounter::dayCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DayCounter
的用法示例。
在下文中一共展示了DayCounter::dayCount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: counter
void DayCounterTest::testThirty360_EurobondBasis() {
BOOST_MESSAGE("Testing thirty/360 day counter (Eurobond Basis)...");
// Source: ISDA 2006 Definitions 4.16 (g)
// 30E/360 (or Eurobond Basis)
// Based on ICMA (Rule 251) and FBF; this is the version of 30E/360 used by Excel
DayCounter dayCounter = Thirty360(Thirty360::EurobondBasis);
std::vector<Date> testStartDates;
std::vector<Date> testEndDates;
Time calculated;
// ISDA - Example 1: End dates do not involve the last day of February
testStartDates.push_back(Date(20, August, 2006)); testEndDates.push_back(Date(20, February, 2007));
testStartDates.push_back(Date(20, February, 2007)); testEndDates.push_back(Date(20, August, 2007));
testStartDates.push_back(Date(20, August, 2007)); testEndDates.push_back(Date(20, February, 2008));
testStartDates.push_back(Date(20, February, 2008)); testEndDates.push_back(Date(20, August, 2008));
testStartDates.push_back(Date(20, August, 2008)); testEndDates.push_back(Date(20, February, 2009));
testStartDates.push_back(Date(20, February, 2009)); testEndDates.push_back(Date(20, August, 2009));
//// ISDA - Example 2: End dates include some end-February dates
testStartDates.push_back(Date(28, February, 2006)); testEndDates.push_back(Date(31, August, 2006));
testStartDates.push_back(Date(31, August, 2006)); testEndDates.push_back(Date(28, February, 2007));
testStartDates.push_back(Date(28, February, 2007)); testEndDates.push_back(Date(31, August, 2007));
testStartDates.push_back(Date(31, August, 2007)); testEndDates.push_back(Date(29, February, 2008));
testStartDates.push_back(Date(29, February, 2008)); testEndDates.push_back(Date(31, August, 2008));
testStartDates.push_back(Date(31, August, 2008)); testEndDates.push_back(Date(28, Feb, 2009));
testStartDates.push_back(Date(28, February, 2009)); testEndDates.push_back(Date(31, August, 2009));
testStartDates.push_back(Date(31, August, 2009)); testEndDates.push_back(Date(28, Feb, 2010));
testStartDates.push_back(Date(28, February, 2010)); testEndDates.push_back(Date(31, August, 2010));
testStartDates.push_back(Date(31, August, 2010)); testEndDates.push_back(Date(28, Feb, 2011));
testStartDates.push_back(Date(28, February, 2011)); testEndDates.push_back(Date(31, August, 2011));
testStartDates.push_back(Date(31, August, 2011)); testEndDates.push_back(Date(29, Feb, 2012));
//// ISDA - Example 3: Miscellaneous calculations
testStartDates.push_back(Date(31, January, 2006)); testEndDates.push_back(Date(28, February, 2006));
testStartDates.push_back(Date(30, January, 2006)); testEndDates.push_back(Date(28, February, 2006));
testStartDates.push_back(Date(28, February, 2006)); testEndDates.push_back(Date(3, March, 2006));
testStartDates.push_back(Date(14, February, 2006)); testEndDates.push_back(Date(28, February, 2006));
testStartDates.push_back(Date(30, September, 2006)); testEndDates.push_back(Date(31, October, 2006));
testStartDates.push_back(Date(31, October, 2006)); testEndDates.push_back(Date(28, November, 2006));
testStartDates.push_back(Date(31, August, 2007)); testEndDates.push_back(Date(28, February, 2008));
testStartDates.push_back(Date(28, February, 2008)); testEndDates.push_back(Date(28, August, 2008));
testStartDates.push_back(Date(28, February, 2008)); testEndDates.push_back(Date(30, August, 2008));
testStartDates.push_back(Date(28, February, 2008)); testEndDates.push_back(Date(31, August, 2008));
testStartDates.push_back(Date(26, February, 2007)); testEndDates.push_back(Date(28, February, 2008));
testStartDates.push_back(Date(26, February, 2007)); testEndDates.push_back(Date(29, February, 2008));
testStartDates.push_back(Date(29, February, 2008)); testEndDates.push_back(Date(28, February, 2009));
testStartDates.push_back(Date(28, February, 2008)); testEndDates.push_back(Date(30, March, 2008));
testStartDates.push_back(Date(28, February, 2008)); testEndDates.push_back(Date(31, March, 2008));
int expected[] = { 180, 180, 180, 180, 180, 180,
182, 178, 182, 179, 181, 178,
182, 178, 182, 178, 182, 179,
28, 28, 5, 14, 30, 28,
178, 180, 182, 182, 362, 363,
359, 32, 32 };
for (Size i = 0; i < testStartDates.size(); i++) {
calculated = dayCounter.dayCount(testStartDates[i], testEndDates[i]);
if (calculated != expected[i]) {
BOOST_ERROR("from " << testStartDates[i]
<< " to " << testEndDates[i] << ":\n"
<< " calculated: " << calculated << "\n"
<< " expected: " << expected[i]);
}
}
}