63 {
64
65
66 Date referenceDate =
iborIndex_->fixingCalendar().adjust(evaluationDate_);
67 Date spotDate =
iborIndex_->fixingCalendar().advance(referenceDate,
iborIndex_->fixingDays() * Days);
68
71
72
73 latestRelevantDate_ =
iborIndex_->maturityDate(earliestDate_);
74
76 case Pillar::MaturityDate:
77 pillarDate_ = maturityDate_;
78 break;
79 case Pillar::LastRelevantDate:
80 pillarDate_ = latestRelevantDate_;
81 break;
82 case Pillar::CustomDate:
83
84 QL_REQUIRE(pillarDate_ >= earliestDate_, "pillar date (" << pillarDate_
85 << ") must be later "
86 "than or equal to the instrument's earliest date ("
87 << earliestDate_ << ")");
88 QL_REQUIRE(pillarDate_ <= latestRelevantDate_, "pillar date ("
89 << pillarDate_
90 << ") must be before "
91 "or equal to the instrument's latest relevant date ("
92 << latestRelevantDate_ << ")");
93 break;
94 default:
95 QL_FAIL(
"unknown Pillar::Choice(" << Integer(
pillarChoice_) <<
")");
96 }
97
98 latestDate_ = pillarDate_;
99
101}
Date getImmDate(Date asof, Size i)