Exemple #1
0
 Month Date::month() const {
     Day d = dayOfYear(); // dayOfYear is 1 based
     Integer m = d/30 + 1;
     bool leap = isLeap(year());
     while (d <= monthOffset(Month(m),leap))
         --m;
     while (d > monthOffset(Month(m+1),leap))
         ++m;
     return Month(m);
 }
Exemple #2
0
    Date::Date(Day d, Month m, Year y) {
        QL_REQUIRE(y > 1900 && y < 2200,
                   "year " << y << " out of bound. It must be in [1901,2199]");
        QL_REQUIRE(Integer(m) > 0 && Integer(m) < 13,
                   "month " << Integer(m)
                   << " outside January-December range [1,12]");

        bool leap = isLeap(y);
        Day len = monthLength(m,leap), offset = monthOffset(m,leap);
        QL_REQUIRE(d <= len && d > 0,
                   "day outside month (" << Integer(m) << ") day-range "
                   << "[1," << len << "]");

        serialNumber_ = d + offset + yearOffset(y);
    }
Exemple #3
0
 inline Day Date::dayOfMonth() const {
     return dayOfYear() - monthOffset(month(),isLeap(year()));
 }