Coverage Report

Created: 2026-06-23 06:40

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/quantlib/ql/time/calendars/botswana.hpp
Line
Count
Source
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2000, 2001, 2002, 2003 RiskMap srl
5
Copyright (C) 2017 Francois Botha
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
<https://www.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 botswana.hpp
22
\brief Botswana calendar
23
*/
24
25
#ifndef quantlib_botswana_calendar_hpp
26
#define quantlib_botswana_calendar_hpp
27
28
#include <ql/time/calendar.hpp>
29
30
namespace QuantLib {
31
32
    //! Botswana calendar
33
    /*! Holidays:
34
    From the Botswana <a href="http://www.ilo.org/dyn/travail/docs/1766/Public%20Holidays%20Act.pdf">Public Holidays Act</a>    
35
    The days named in the Schedule shall be public holidays within Botswana:
36
    Provided that
37
    <ul>
38
    <li>when any of the said days fall on a Sunday the following Monday shall be observed as a public holiday;</li>
39
    <li>if 2nd January, 1st October or Boxing Day falls on a Monday, the following Tuesday shall be observed as a public holiday;</li>
40
    <li>when Botswana Day referred to in the Schedule falls on a Saturday, the next following Monday shall be observed as a public holiday.</li>
41
    </ul>
42
    <ul>
43
    <li>Saturdays</li>
44
    <li>Sundays</li>
45
    <li>New Year's Day, January 1st</li>
46
    <li>Good Friday</li>
47
    <li>Easter Monday</li>
48
    <li>Labour Day, May 1st</li>
49
    <li>Ascension</li>
50
    <li>Sir Seretse Khama Day, July 1st</li>
51
    <li>Presidents' Day</li>
52
    <li>Independence Day, September 30th</li>
53
    <li>Botswana Day, October 1st</li>
54
    <li>Christmas, December 25th </li>
55
    <li>Boxing Day, December 26th</li>
56
    </ul>
57
58
    \ingroup calendars
59
    */
60
    class Botswana : public Calendar {
61
    private:
62
        class Impl final : public Calendar::WesternImpl {
63
        public:
64
0
          std::string name() const override { return "Botswana"; }
65
          bool isBusinessDay(const Date&) const override;
66
        };
67
    public:
68
        Botswana();
69
    };
70
71
}
72
73
74
#endif