year_month
class
Represents a month and year. The day isn't specified.
Syntax
class year_month; // C++20
Members
Name | Description |
---|---|
Constructors | Construct a year_month |
year |
Returns the year. |
month |
Returns the month. |
ok |
Verify that the year and month values are in the valid range. |
operator+= |
Add the specified number of months or years. |
operator-= |
Subtract the specified number of months or years. |
Non-members
Name | Description |
---|---|
from_stream |
Parse a year_month from a stream using the specified format |
operator+ |
Add months and/or years. |
operator- |
Subtract months and/or years. |
operator== |
Determine whether two year_month values are equal. |
operator<=> |
Compare two year_month values. The >, >=, <=, <, != operators are synthesized by the compiler. |
operator<< |
Output a year_month to a stream. |
Requirements
Header: <chrono>
(since C++20)
Namespace: std::chrono
Compiler Option: /std:c++latest
Constructors
Construct a year_month
.
1) year_month() = default;
2) constexpr year_month(const year& y, const month& m) noexcept;
Parameters
y
The year
value.
m
The month
value.
Remarks
1) The default constructor doesn't initialize the year
or month
value.
2) Construct a year_month
with the specified values.
For information about C++20 syntax to specify dates, see operator/
Example: Create a year_month
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month ym{2021y / June};
std::cout << ym;
return 0;
}
2021/Jun
month
Get the month.
constexpr month month() const noexcept;
Return value
The month
value.
year
Get the year.
constexpr year year() const noexcept;
Return value
The year
.
ok
Check if the year and month value stored in this year_month
are both in the valid range.
constexpr bool ok() const noexcept;
Return value
true
if the year_month
year and month values are in the valid range. Otherwise, false
.
operator+=
Add months or years to this year_month
.
1) constexpr year_month& operator+=(const months& dm) noexcept;
2) constexpr year_month& operator+=(const years& dy) noexcept;
Parameters
dm
The number of months to add.
dy
The number of years to add.
Return value
*this
, which reflects the result of the addition.
Example: operator +=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month ym{2021y / June};
std::cout << ym << '\n';
ym += months{2};
ym += years{1};
std::cout << ym;
return 0;
}
2021/Jun
2022/Aug
operator-=
Subtract months or years from this year_month
.
1) constexpr year_month& operator-=(const months& dm) noexcept;
2) constexpr year_month& operator-=(const years& dy) noexcept;
Parameters
dm
The number of months to subtract.
dy
The number of years to subtract.
Return value
*this
, which reflects the result of the subtraction.
Example: operator -=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month ym{2021y / June};
std::cout << ym << '\n';
ym -= months{2};
ym -= years{1};
std::cout << ym;
return 0;
}
2021/Jun
2020/Apr
See also
<chrono>
year
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Header Files Reference