Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Represents a month of a year. For example, July.
Syntax
class month; // C++20
Remarks
A month normally holds values in the range [1, 12]. It can also hold non-negative values outside this range.
See Month constants, below, for constants that you can use with the month class.
Members
| Name | Description | 
|---|---|
| Constructors | Construct a month. | 
| ok | Verify that the month value is in the valid range [1,12]. | 
| operator++ | Increment the month. | 
| operator+= | Add the specified number of months to this month. | 
| operator-- | Decrement this month. | 
| operator-= | Subtract the specified number of months from this month. | 
| operator unsigned | Get the monthvalue. | 
Non-members
| Name | Description | 
|---|---|
| from_stream | Parse a monthfrom the given stream using the specified format. | 
| operator+ | Add specified number of months to this month, returning a newmonthinstance. | 
| operator- | Subtract the specified number of months from this month. Returns a new monthinstance. | 
| operator== | Determine whether two months are equal. | 
| operator<=> | Compare this month against another month. The >, >=, <=, <, !=operators are synthesized by the compiler. | 
| operator<< | Output a monthto the given stream. | 
Requirements
Header: <chrono> (since C++20)
Namespace: std::chrono
Compiler Option: /std:c++latest
Constructors
Construct a month.
1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;
Parameters
m
Construct a month with value m.
Remarks
1) The default constructor doesn't initialize the day value.
2) Construct a month with the day value initialized to m.
 ok
Check if the value stored in this month is in the valid range.
constexpr bool ok() const noexcept;
Return value
true if the month value is in the range [1,12]. Otherwise, false.
 operator++
Increment the month value.
1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;
Return value
1) A reference to *this month after it has been incremented (a postfix increment).
2) A copy of the month, before it has been incremented (a prefix increment).
Example: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
    month m{ January };
    month m2{4}; // April
    std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
    std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
    std::cout << m << "\n";
    std::cout << m2 << "\n";
    return 0;
}
Jan Feb
Feb Feb
Mar
Apr
Remarks
If the result exceeds 12, it's set to 1.
 operator--
Subtract 1 from the month value.
1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;
Return value
1) A reference to *this month after it has been decremented (a postfix decrement).
2) A copy of the month before it has been decremented (a prefix decrement).
Example: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
    month m{May};
    cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
    cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
    cout << m << "\n";
    return 0;
}
May Apr
Apr Apr
Mar
Remarks
If the decremented result is less than 1, it's set to 12.
 operator+=
Add months to this month.
constexpr month& operator+=(const months& m) noexcept;
Parameters
m
The number of months to add.
Return value
*this
 operator-=
Subtract months from this month.
constexpr month& operator-=(const months& m) noexcept;
Parameters
m
The months to subtract.
Return value
*this.
 operator unsigned
Get the unsigned month value.
explicit constexpr operator unsigned() const noexcept;
Return value
The unsigned value of this month
Example: operator unsigned()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
    month m{July};
    unsigned monthValue = static_cast<unsigned>(m);
    std::cout << monthValue << "\n";
    return 0;
}
7
Month constants
(C++20) The <chrono> header defines the following constants that you can use with month for greater convenience, type-safety, and maintainability of your code. These constants are in scope when std::chrono is in scope.
// Calendrical constants
inline constexpr month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};
See also
<chrono>
month_day Class
month_day_last Class
month_weekday Class
month_weekday_last class