year
class
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
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