コード例 #1
0
void InflationTermStructure::checkRange(const Date& d,
                                        bool extrapolate) const {
    QL_REQUIRE(d >= baseDate(),
               "date (" << d << ") is before base date");
    QL_REQUIRE(extrapolate || allowsExtrapolation() || d <= maxDate(),
               "date (" << d << ") is past max curve date ("
               << maxDate() << ")");
}
コード例 #2
0
ファイル: termstructure.cpp プロジェクト: 21hub/QuantLib
 void TermStructure::checkRange(const Date& d,
                                bool extrapolate) const {
     QL_REQUIRE(d >= referenceDate(),
                "date (" << d << ") before reference date (" <<
                referenceDate() << ")");
     QL_REQUIRE(extrapolate || allowsExtrapolation() || d <= maxDate(),
                "date (" << d << ") is past max curve date ("
                         << maxDate() << ")");
 }
 void YoYOptionletVolatilitySurface::checkRange(const Date& d, Rate strike,
                                         bool extrapolate) const {
     QL_REQUIRE(d >= baseDate(),
                "date (" << d << ") is before base date");
     QL_REQUIRE(extrapolate || allowsExtrapolation() || d <= maxDate(),
                "date (" << d << ") is past max curve date ("
                << maxDate() << ")");
     QL_REQUIRE(extrapolate || allowsExtrapolation() ||
                (strike >= minStrike() && strike <= maxStrike()),
                "strike (" << strike << ") is outside the curve domain ["
                << minStrike() << "," << maxStrike()<< "]] at date = " << d);
 }
コード例 #4
0
ファイル: date.cpp プロジェクト: JingGuo0806/quantlib-full
 void Date::checkSerialNumber(BigInteger serialNumber) {
     QL_REQUIRE(serialNumber >= minimumSerialNumber() &&
                serialNumber <= maximumSerialNumber(),
                "Date's serial number (" << serialNumber << ") outside "
                "allowed range [" << minimumSerialNumber() <<
                "-" << maximumSerialNumber() << "], i.e. [" <<
                minDate() << "-" << maxDate() << "]");
 }
コード例 #5
0
		void CalendarTemplateElement::apply(
			Calendar& result,
			const Calendar& mask
		) const	{

			// Empty mask : exit
			if(mask.empty())
			{
				return;
			}

			// Min and max dates of the update
			date minDate(_minDate);
			if(	minDate.is_neg_infinity() ||
				(minDate < mask.getFirstActiveDate() && _step.days() == 1)
			){
				minDate = mask.getFirstActiveDate();
			}
			date maxDate(_maxDate);
			if (maxDate > mask.getLastActiveDate())
			{
				maxDate = mask.getLastActiveDate();
			}

			// Abort if no date
			if(minDate > maxDate)
			{
				return;
			}

			// Base mask
			Calendar elementMask(minDate, maxDate, _step);
			elementMask &= mask;
			if(_include)
			{
				elementMask = _include->getResult(elementMask);
			}

			// Applying the element on the result
			switch(_operation)
			{
			case ADD:
				result |= elementMask;
				break;

			case SUB:
				result -= elementMask;
				break;

			case AND:
				result &= elementMask;
				break;
			}
		}
コード例 #6
0
// Testing get/set functions
void tst_QCalendarWidget::getSetCheck()
{
    QWidget topLevel;
    QCalendarWidget object(&topLevel);

    //horizontal header formats
    object.setHorizontalHeaderFormat(QCalendarWidget::NoHorizontalHeader);
    QCOMPARE(QCalendarWidget::NoHorizontalHeader, object.horizontalHeaderFormat());
    object.setHorizontalHeaderFormat(QCalendarWidget::SingleLetterDayNames);
    QCOMPARE(QCalendarWidget::SingleLetterDayNames, object.horizontalHeaderFormat());
    object.setHorizontalHeaderFormat(QCalendarWidget::ShortDayNames);
    QCOMPARE(QCalendarWidget::ShortDayNames, object.horizontalHeaderFormat());
    object.setHorizontalHeaderFormat(QCalendarWidget::LongDayNames);
    QCOMPARE(QCalendarWidget::LongDayNames, object.horizontalHeaderFormat());
    //vertical header formats
    object.setVerticalHeaderFormat(QCalendarWidget::ISOWeekNumbers);
    QCOMPARE(QCalendarWidget::ISOWeekNumbers, object.verticalHeaderFormat());
    object.setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader);
    QCOMPARE(QCalendarWidget::NoVerticalHeader, object.verticalHeaderFormat());
    //maximum Date
    QDate maxDate(2006, 7, 3);
    object.setMaximumDate(maxDate);
    QCOMPARE(maxDate, object.maximumDate());
    //minimum date
    QDate minDate(2004, 7, 3);
    object.setMinimumDate(minDate);
    QCOMPARE(minDate, object.minimumDate());
    //day of week
    object.setFirstDayOfWeek(Qt::Thursday);
    QCOMPARE(Qt::Thursday, object.firstDayOfWeek());
    //grid visible
    object.setGridVisible(true);
    QVERIFY(object.isGridVisible());
    object.setGridVisible(false);
    QVERIFY(!object.isGridVisible());
    //header visible
    object.setNavigationBarVisible(true);
    QVERIFY(object.isNavigationBarVisible());
    object.setNavigationBarVisible(false);
    QVERIFY(!object.isNavigationBarVisible());
    //selection mode
    QCOMPARE(QCalendarWidget::SingleSelection, object.selectionMode());
    object.setSelectionMode(QCalendarWidget::NoSelection);
    QCOMPARE(QCalendarWidget::NoSelection, object.selectionMode());
    object.setSelectionMode(QCalendarWidget::SingleSelection);
    QCOMPARE(QCalendarWidget::SingleSelection, object.selectionMode());
   //selected date
    QDate selectedDate(2005, 7, 3);
    QSignalSpy spy(&object, SIGNAL(selectionChanged()));
    object.setSelectedDate(selectedDate);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(selectedDate, object.selectedDate());
    //month and year
    object.setCurrentPage(2004, 1);
    QCOMPARE(1, object.monthShown());
    QCOMPARE(2004, object.yearShown());
    object.showNextMonth();
    QCOMPARE(2, object.monthShown());
    object.showPreviousMonth();
    QCOMPARE(1, object.monthShown());
    object.showNextYear();
    QCOMPARE(2005, object.yearShown());
    object.showPreviousYear();
    QCOMPARE(2004, object.yearShown());
    //date range
    minDate = QDate(2006,1,1);
    maxDate = QDate(2010,12,31);
    object.setDateRange(minDate, maxDate);
    QCOMPARE(maxDate, object.maximumDate());
    QCOMPARE(minDate, object.minimumDate());

    //date should not go beyond the minimum.
    selectedDate = minDate.addDays(-10);
    object.setSelectedDate(selectedDate);
    QCOMPARE(minDate, object.selectedDate());
    QVERIFY(selectedDate != object.selectedDate());
    //date should not go beyond the maximum.
    selectedDate = maxDate.addDays(10);
    object.setSelectedDate(selectedDate);
    QCOMPARE(maxDate, object.selectedDate());
    QVERIFY(selectedDate != object.selectedDate());
    //show today
    QDate today = QDate::currentDate();
    object.showToday();
    QCOMPARE(today.month(), object.monthShown());
    QCOMPARE(today.year(), object.yearShown());
    //slect a different date and move.
    object.setSelectedDate(minDate);
    object.showSelectedDate();
    QCOMPARE(minDate.month(), object.monthShown());
    QCOMPARE(minDate.year(), object.yearShown());
}
コード例 #7
0
ファイル: termstructure.hpp プロジェクト: shlagbaum/quantlib
inline Time TermStructure::maxTime() const {
    return timeFromReference(maxDate());
}
コード例 #8
0
ファイル: geldrechen.cpp プロジェクト: MrRisoni/Gauss
void GeldRechen::calcStudentFees() {
    /*
      absencies are NOT and SHOULD NOT be taken into account
      unless SERIOUS REASON
      see table absent


      discounts ????


*/

    qDebug () << "FEE FOR STUDENTS";
    QSqlQuery q,q2,q3,q4;
    q.exec("SELECT GroupID,StartDate FROM Groups");
    while (q.next()) {
        QString gid=q.value(0).toString();

        QDate start_date = q.value(1).toDate();
        //for every active group

        qDebug() << " fee calc for group " << gid;


        // a student may have joined the group after the group started and may have left before the group ended
        //for every student in that group
         q2.prepare("SELECT StudID,Added,Dropped FROM Ensembles WHERE GroupID=:gid");
         q2.bindValue(":gid",gid);
         q2.exec();

         while (q2.next()) {
             QString studid=q2.value(0).toString();
             QDate joined=q2.value(1).toDate();
             QDate dropped = q2.value(2).toDate();
             float discount =0;
             qDebug() << "--------------------";
             qDebug () << "studid " << studid << "joined " << maxDate(joined,start_date) << " dropped " << minDate(dropped,QDate::currentDate());
             //get group history  from GREATEST(groupstart,added) up to LEAST(dropout,curdate)  MINUS  Truant==0 abscencies

             q3.prepare("SELECT Duration,fee+ fee*vat FROM History  Where Dat>= :join_date AND Dat<=:leave_date AND GroupID=:gid  AND Valid=1  AND HistID NOT IN (SELECT HistID FROM Absent WHERE StudentID=:sid and Truant=0)") ;
             qDebug() << "Joined date " << joined.toString() << " dropped " << dropped.toString();
             q3.bindValue(":join_date",maxDate(joined,start_date));
             q3.bindValue(":leave_date",minDate(dropped,QDate::currentDate()));
             q3.bindValue(":gid",gid);
             q3.bindValue(":sid",studid);

             q3.exec();

             float unterricht = 0;
             float muss_bezahlen=0;
             while (q3.next()) {
                 //qDebug() << "VATED" << q3.value(1).toFloat();
                  muss_bezahlen += q3.value(0).toFloat() * q3.value(1).toFloat() ;
                  unterricht += q3.value(0).toFloat();
             }

             //discount
             muss_bezahlen -= muss_bezahlen * discount/100.0f;


             qDebug() << "student " << studid <<  "group " << gid <<  " must pay " << muss_bezahlen << " total hours " << unterricht;


             QString qry=" UPDATE  ShouldBePayed SET  Amount=:euro , Updated=CURDATE()  WHERE GroupID=:gid AND  StudentID=:stid ";
             q4.prepare(qry);
             q4.bindValue(":stid",studid);
             q4.bindValue(":gid",gid);
             q4.bindValue(":euro",muss_bezahlen);

             if (!q4.exec()) {

                 qDebug() << "error.." << q4.lastError().driverText() << " " << q4.lastError().databaseText();

             }



         }


    }
}