1 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 3 /* 4 Copyright (C) 2003 RiskMap srl 5 Copyright (C) 2007 StatPro Italia srl 6 7 This file is part of QuantLib, a free-software/open-source library 8 for financial quantitative analysts and developers - http://quantlib.org/ 9 10 QuantLib is free software: you can redistribute it and/or modify it 11 under the terms of the QuantLib license. You should have received a 12 copy of the license along with this program; if not, please email 13 <quantlib-dev@lists.sf.net>. The license is also available online at 14 <http://quantlib.org/license.shtml>. 15 16 This program is distributed in the hope that it will be useful, but WITHOUT 17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 FOR A PARTICULAR PURPOSE. See the license for more details. 19 */ 20 21 /*! \file nullcalendar.hpp 22 \brief Calendar for reproducing theoretical calculations 23 */ 24 25 #ifndef quantlib_null_calendar_hpp 26 #define quantlib_null_calendar_hpp 27 28 #include <ql/time/calendar.hpp> 29 30 namespace QuantLib { 31 32 //! %Calendar for reproducing theoretical calculations. 33 /*! This calendar has no holidays. It ensures that dates at 34 whole-month distances have the same day of month. 35 36 \ingroup calendars 37 */ 38 class NullCalendar : public Calendar { 39 private: 40 class Impl : public Calendar::Impl { 41 public: name() const42 std::string name() const { return "Null"; } isWeekend(Weekday) const43 bool isWeekend(Weekday) const { return false; } isBusinessDay(const Date &) const44 bool isBusinessDay(const Date&) const { return true; } 45 }; 46 public: NullCalendar()47 NullCalendar() { 48 impl_ = ext::shared_ptr<Calendar::Impl>(new NullCalendar::Impl); 49 } 50 }; 51 52 } 53 54 55 #endif 56