Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 dayfrom the given stream using the specified format. | 
| operator+ | Add specified number of days to this day, returning a newdayobject. | 
| operator- | Subtract the specified number of days from this day, returning a newdayobject. | 
| operator== | Determine whether two dayinstances are equal. | 
| operator<=> | Compare this dayagainst anotherday. The>, >=, <=, <, !=operators are synthesized by the compiler. | 
| operator<< | Output a dayto the given stream. | 
| operator""d | Create a dayliteral 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