Coverage Report

Created: 2026-03-11 06:44

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/quantlib/ql/time/daycounters/actual360.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
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
 <https://www.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 actual360.hpp
21
    \brief act/360 day counter
22
*/
23
24
#ifndef quantlib_actual360_day_counter_h
25
#define quantlib_actual360_day_counter_h
26
27
#include <ql/time/daycounter.hpp>
28
29
namespace QuantLib {
30
31
    //! Actual/360 day count convention
32
33
    /*! Actual/360 day count convention, also known as "Act/360", or "A/360".
34
35
        \ingroup daycounters
36
    */
37
    class Actual360 : public DayCounter {
38
      private:
39
        class Impl final : public DayCounter::Impl {
40
          private:
41
              bool includeLastDay_;
42
          public:
43
            explicit Impl(const bool includeLastDay)
44
975
            : includeLastDay_(includeLastDay) {}
45
0
            std::string name() const override {
46
0
                return includeLastDay_ ?
47
0
                    std::string("Actual/360 (inc)")
48
0
                    : std::string("Actual/360");
49
0
            }
50
0
            Date::serial_type dayCount(const Date& d1, const Date& d2) const override {
51
0
                return (d2-d1) + (includeLastDay_ ? 1 : 0);
52
0
            }
53
            Time
54
0
            yearFraction(const Date& d1, const Date& d2, const Date&, const Date&) const override {
55
0
                return (daysBetween(d1,d2)
56
0
                        + (includeLastDay_ ? 1.0 : 0.0))/360.0;
57
0
            }
58
        };
59
      public:
60
        explicit Actual360(const bool includeLastDay = false)
61
975
        : DayCounter(ext::shared_ptr<DayCounter::Impl>(
62
975
            new Actual360::Impl(includeLastDay))) {}
63
    };
64
65
}
66
67
#endif