Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Represents a year in the Gregorian calendar.
Syntax
class year; // C++20
Remarks
A year can hold a year value between -32767 to 32767.
Members
| Name | Description |
|---|---|
| Constructors | Construct a year |
is_leap |
Determine if the year is a leap year. |
max |
Returns the largest possible year value. |
min |
Returns the smallest possible year value. |
ok |
Verify that the year value is in the valid range [-32767, 32767]. |
operator+ |
Unary plus. |
operator++ |
Increment the year. |
operator+= |
Add the specified number of years to this year. |
operator- |
Unary minus. |
operator-- |
Decrement the year. |
operator-= |
Subtract the specified number of years from this year. |
operator int |
Get the year value. |
Non-members
| Name | Description |
|---|---|
from_stream |
Parse a year from a stream using the specified format |
operator+ |
Add years. |
operator- |
Subtract years. |
operator== |
Determine whether two years are equal. |
operator<=> |
Compare this year against another year. The >, >=, <=, <, != operators are synthesized by the compiler. |
operator<< |
Output a year to the given stream. |
operator""y |
Create a year literal. |
Requirements
Header: <chrono> (since C++20)
Namespace: std::chrono
Compiler Option: /std:c++latest
Constructors
Construct a year.
1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;
Parameters
y
Construct a year with value y.
Remarks
1) The default constructor doesn't initialize the year value.
2) Construct a year with the specified value.
Example: Create a year
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
year y2 = 2021y;
std::cout << y << ", " << y2;
return 0;
}
2020, 2021
is_leap
Check if the value stored in this year is in the valid range.
constexpr bool is_leap() const noexcept;
Return value
true if the year value is a leap year. Otherwise, false.
A leap year is a year divisible by 4 but not 100--or is divisible by 400.
max
Returns the largest possible year.
static constexpr year max() noexcept;
Return value
year{32767}
min
Returns the smallest possible year.
static constexpr year min() noexcept;
Return value
year{-32767}
ok
Check if the value stored in this year is in the valid range.
constexpr bool ok() const noexcept;
Return value
true if the year value is in the range [-32676, 32767]. Otherwise, false.
operator+
Apply unary plus.
constexpr year operator+() const noexcept;
Return value
Returns *this
Example: unary operator+
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{-1};
std::cout << +y;
return 0;
}
-0001
operator++
Add 1 to the year value.
1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;
Return value
1) Returns reference to this year after it has been incremented (a postfix increment).
2) Returns a copy of the year, 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()
{
year y{2021};
std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2022
2022 2022
2023
Remarks
If the incremented result exceeds 32767, it overflows to -32768
operator-
Unary minus. Negate the year.
constexpr year operator-() const noexcept; // C++20
Return value
Returns a negated copy of the year.
Example: unary operator-
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{1977};
std::cout << -y << '\n';
return 0;
}
-1977
operator--
Subtract 1 from the year value.
1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;
Return value
1) A reference to this year after it has been decremented (a postfix decrement).
2) A copy of the year before it has been decremented (a prefix decrement).
Example: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2020
2020 2020
2019
Remarks
If the decremented result is less than -32768, it's set to 32767.
operator+=
Add days to this year.
constexpr year& operator+=(const years& y) noexcept;
Parameters
y
The number of years to add.
Return value
*this If the incremented result exceeds 32767, it overflows to -32768.
operator-=
Subtract days from this year.
constexpr year& operator-=(const years& y) noexcept;
Parameters
y
The number of years to subtract.
Return value
*this. If the decremented result is less than -32768, it's set to 32767.
operator int
Get the year value.
explicit constexpr operator int() const noexcept;
Return value
The value of the year
Example: operator int()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
int yearValue = static_cast<int>(y);
std::cout << yearValue;
return 0;
}
2020
See also
<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Header Files Reference