1 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 3 /* 4 Copyright (C) 2004 Ferdinando Ametrano 5 Copyright (C) 2000, 2001, 2002, 2003 RiskMap 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 italy.hpp 22 \brief Italian calendars 23 */ 24 25 #ifndef quantlib_italy_calendar_hpp 26 #define quantlib_italy_calendar_hpp 27 28 #include <ql/time/calendar.hpp> 29 30 namespace QuantLib { 31 32 //! Italian calendars 33 /*! Public holidays: 34 <ul> 35 <li>Saturdays</li> 36 <li>Sundays</li> 37 <li>New Year's Day, January 1st</li> 38 <li>Epiphany, January 6th</li> 39 <li>Easter Monday</li> 40 <li>Liberation Day, April 25th</li> 41 <li>Labour Day, May 1st</li> 42 <li>Republic Day, June 2nd (since 2000)</li> 43 <li>Assumption, August 15th</li> 44 <li>All Saint's Day, November 1st</li> 45 <li>Immaculate Conception Day, December 8th</li> 46 <li>Christmas Day, December 25th</li> 47 <li>St. Stephen's Day, December 26th</li> 48 </ul> 49 50 Holidays for the stock exchange (data from http://www.borsaitalia.it): 51 <ul> 52 <li>Saturdays</li> 53 <li>Sundays</li> 54 <li>New Year's Day, January 1st</li> 55 <li>Good Friday</li> 56 <li>Easter Monday</li> 57 <li>Labour Day, May 1st</li> 58 <li>Assumption, August 15th</li> 59 <li>Christmas' Eve, December 24th</li> 60 <li>Christmas, December 25th</li> 61 <li>St. Stephen, December 26th</li> 62 <li>New Year's Eve, December 31st</li> 63 </ul> 64 65 \ingroup calendars 66 67 \test the correctness of the returned results is tested against a 68 list of known holidays. 69 */ 70 class Italy : public Calendar { 71 private: 72 class SettlementImpl : public Calendar::WesternImpl { 73 public: name() const74 std::string name() const { return "Italian settlement"; } 75 bool isBusinessDay(const Date&) const; 76 }; 77 class ExchangeImpl : public Calendar::WesternImpl { 78 public: name() const79 std::string name() const { return "Milan stock exchange"; } 80 bool isBusinessDay(const Date&) const; 81 }; 82 public: 83 //! Italian calendars 84 enum Market { Settlement, //!< generic settlement calendar 85 Exchange //!< Milan stock-exchange calendar 86 }; 87 Italy(Market market = Settlement); 88 }; 89 90 } 91 92 93 #endif 94