示例#1
0
 Year Date::year() const {
     Year y = (serialNumber_ / 365)+1900;
     // yearOffset(y) is December 31st of the preceding year
     if (serialNumber_ <= yearOffset(y))
         --y;
     return y;
 }
示例#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);
    }
示例#3
0
 inline Day Date::dayOfYear() const {
     return serialNumber_ - yearOffset(year());
 }