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