1 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 /*
4  Copyright (C) 2004 FIMAT Group
5  Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011 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 taiwan.hpp
22     \brief Taiwanese calendars
23 */
24 
25 #ifndef quantlib_taiwanese_calendar_hpp
26 #define quantlib_taiwanese_calendar_hpp
27 
28 #include <ql/time/calendar.hpp>
29 
30 namespace QuantLib {
31 
32     //! Taiwanese calendars
33     /*! Holidays for the Taiwan stock exchange
34         (data from <http://www.tse.com.tw/en/trading/trading_days.php>):
35         <ul>
36         <li>Saturdays</li>
37         <li>Sundays</li>
38         <li>New Year's Day, January 1st</li>
39         <li>Peace Memorial Day, February 28</li>
40         <li>Labor Day, May 1st</li>
41         <li>Double Tenth National Day, October 10th</li>
42         </ul>
43 
44         Other holidays for which no rule is given
45         (data available for 2002-2014 only:)
46         <ul>
47         <li>Chinese Lunar New Year</li>
48         <li>Tomb Sweeping Day</li>
49         <li>Dragon Boat Festival</li>
50         <li>Moon Festival</li>
51         </ul>
52 
53         \ingroup calendars
54     */
55     class Taiwan : public Calendar {
56       private:
57         class TsecImpl : public Calendar::Impl {
58           public:
name() const59             std::string name() const { return "Taiwan stock exchange"; }
60             bool isWeekend(Weekday) const;
61             bool isBusinessDay(const Date&) const;
62         };
63       public:
64         enum Market { TSEC    //!< Taiwan stock exchange
65         };
66         Taiwan(Market m = TSEC);
67     };
68 
69 }
70 
71 
72 #endif
73