1 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 3 /* 4 Copyright (C) 2005 StatPro Italia srl 5 6 This file is part of QuantLib, a free-software/open-source library 7 for financial quantitative analysts and developers - http://quantlib.org/ 8 9 QuantLib is free software: you can redistribute it and/or modify it 10 under the terms of the QuantLib license. You should have received a 11 copy of the license along with this program; if not, please email 12 <quantlib-dev@lists.sf.net>. The license is also available online at 13 <http://quantlib.org/license.shtml>. 14 15 This program is distributed in the hope that it will be useful, but WITHOUT 16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 17 FOR A PARTICULAR PURPOSE. See the license for more details. 18 */ 19 20 /*! \file iceland.hpp 21 \brief Icelandic calendars 22 */ 23 24 #ifndef quantlib_iceland_calendar_hpp 25 #define quantlib_iceland_calendar_hpp 26 27 #include <ql/time/calendar.hpp> 28 29 namespace QuantLib { 30 31 //! Icelandic calendars 32 /*! Holidays for the Iceland stock exchange 33 (data from <http://www.icex.is/is/calendar?languageID=1>): 34 <ul> 35 <li>Saturdays</li> 36 <li>Sundays</li> 37 <li>New Year's Day, January 1st</li> 38 <li>Holy Thursday</li> 39 <li>Good Friday</li> 40 <li>Easter Monday</li> 41 <li>First day of Summer (third or fourth Thursday in April)</li> 42 <li>Labour Day, May 1st</li> 43 <li>Ascension Thursday</li> 44 <li>Pentecost Monday</li> 45 <li>Independence Day, June 17th</li> 46 <li>Commerce Day, first Monday in August</li> 47 <li>Christmas, December 25th</li> 48 <li>Boxing Day, December 26th</li> 49 </ul> 50 51 \ingroup calendars 52 */ 53 class Iceland : public Calendar { 54 private: 55 class IcexImpl : public Calendar::WesternImpl { 56 public: name() const57 std::string name() const { return "Iceland stock exchange"; } 58 bool isBusinessDay(const Date&) const; 59 }; 60 public: 61 enum Market { ICEX //!< Iceland stock exchange 62 }; 63 Iceland(Market m = ICEX); 64 }; 65 66 } 67 68 69 #endif 70