day
class
Represents a day of the month. For example, the 25th day of the month.
Syntax
class day; // C++20
Remarks
A day
normally holds values in the range [1, 31]. It may hold non-negative values outside this range, but the behavior is unspecified if it isn't within the range [0, 255].
Members
Name | Description |
---|---|
Constructors | Construct a day . |
ok |
Verify that the day value is in the valid range [1,31]. |
operator++ |
Increment this day . |
operator+= |
Add the specified number of days to this day . |
operator-- |
Decrement the day . |
operator-= |
Subtract the specified number of days from this day |
operator unsigned |
Get the day value as an unsigned integer. |
Non-members
Name | Description |
---|---|
from_stream |
Parse a day from the given stream using the specified format. |
operator+ |
Add specified number of days to this day , returning a new day object. |
operator- |
Subtract the specified number of days from this day , returning a new day object. |
operator== |
Determine whether two day instances are equal. |
operator<=> |
Compare this day against another day . The >, >=, <=, <, != operators are synthesized by the compiler. |
operator<< |
Output a day to the given stream. |
operator""d |
Create a day literal for a day in the month. |
Requirements
Header: <chrono>
(since C++20)
Namespace: std::chrono
Compiler Option: /std:c++latest
Constructors
Constructs a day
.
1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;
Parameters
d
Construct a day
with value d
.
Remarks
1) The default constructor doesn't initialize the day value.
2) Construct a day
with the day value initialized to d
.
Example: Create a day
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1}; // day 1
day d2 = 2d; // day 2
std::cout << d << ", " << d2;
return 0;
}
01, 02
ok
Check if the value stored in this day
is in the valid range.
constexpr bool ok() const noexcept;
Return value
true
if the day value is in the range [1,31]. Otherwise, false
.
operator++
Add 1 to the day value.
1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;
Return value
1) A reference to *this
day
after it has been incremented (a postfix increment).
2) A copy of the day
, 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()
{
day d{1};
std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
std::cout << d;
return 0;
}
01 02
02 02
03
Remarks
If the incremented result is out of the range [0, 255], then the stored value is unspecified.
operator--
Subtract 1 from the day value.
1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;
Return value
1) A reference to *this
day after it has been decremented (a postfix decrement).
2) A copy of the *day
, before it has been decremented (a prefix decrement).
Example: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
day d{5};
std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
std::cout << d << "\n";
return 0;
}
05 04
04 04
03
Remarks
If the decremented result is out of the range [0, 255], then the stored value is unspecified.
operator+=
Add days to this day
.
constexpr day& operator+=(const days& d) noexcept;
Parameters
d
The number of days to add.
Return value
*this
If the result is outside the range [0, 255], then the stored value is unspecified.
operator-=
Subtract days from this day
.
constexpr day& operator-=(const days& d) noexcept;
Parameters
d
The number of days to subtract.
Return value
*this
. If the result is outside the range [0, 255], then the stored value is unspecified.
operator unsigned
Get the day
value.
explicit constexpr operator unsigned() const noexcept;
Return value
The value of the day
Example: operator unsigned()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
chrono::day d{14d};
unsigned dayValue = static_cast<unsigned>(d);
cout << dayValue << "\n";
return 0;
}
14
See also
<chrono>
month_day
class
month_day_last
class
year_month_day
year_month_day_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