month
class
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 month value. |
Non-members
Name | Description |
---|---|
from_stream |
Parse a month from the given stream using the specified format. |
operator+ |
Add specified number of months to this month , returning a new month instance. |
operator- |
Subtract the specified number of months from this month. Returns a new month instance. |
operator== |
Determine whether two months are equal. |
operator<=> |
Compare this month against another month. The >, >=, <=, <, != operators are synthesized by the compiler. |
operator<< |
Output a month to 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
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru