表示月份的一天。 例如,月份的第 25 天。
语法
class day; // C++20
注解
一个 day 通常在 [1, 31] 范围内保存值。 它可以在此范围之外保留非负值,但如果行为不在 [0, 255] 范围内,则不指定该行为。
成员
| 名称 | DESCRIPTION | 
|---|---|
| 构造 函数 | 构造一个 day。 | 
ok | 
验证日期值是否在有效范围内 [1,31]。 | 
operator++ | 
递增此 day。 | 
operator+= | 
向此 day添加指定的天数。 | 
operator-- | 
              day递减 . | 
operator-= | 
从此减去指定天数 day | 
operator unsigned | 
获取日值作为无符号整数。 | 
非成员
| 名称 | DESCRIPTION | 
|---|---|
from_stream | 
使用指定的格式从给定流分析 a day 。 | 
operator+ | 
为此 day添加指定的天数,返回一个新 day 对象。 | 
operator- | 
从此 day值中减去指定的天数,返回一个新 day 对象。 | 
operator== | 
确定两个 day 实例是否相等。 | 
operator<=> | 
将此 day 与另一个 day进行比较。 
              >, >=, <=, <, !=运算符由编译器合成。 | 
operator<< | 
向给定流输出 a day 。 | 
operator""d | 
为月份中的某一 day 天创建文本。 | 
要求
              页眉:<chrono> (自C++20以来)
              Namespace:std::chrono
              编译器选项:/std:c++latest
构造函数
构造一个 day。
1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;
参数
d
使用值day构造一个 d 。
注解
1) 默认构造函数不会初始化日期值。
2) 构造一个 day 初始化为 d的日期值。
示例:创建 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
检查存储在此 day 中的值是否位于有效范围内。
constexpr bool ok() const noexcept;
返回值
              true 如果日期值在 [1,31] 范围内,则为 。 否则,false。
              
              operator++
            
将 1 添加到日期值。
1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;
返回值
1) 对后它的引用*thisday已递增(后缀递增)。
2) 副本 day,在递增 之前 (前缀增量)。
示例: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
注解
如果递增的结果超过 [0, 255]范围,则未指定存储的值。
 operator--
从日期值中减去 1。
1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;
返回值
1) 对递减*this一天的引用(后缀递减)。
2) 副本 *day,在递减 之前 (前缀递减)。
示例: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
注解
如果递减结果超过 [0, 255]范围,则未指定存储的值。
              
              operator+=
            
为此 day添加天数。
constexpr day& operator+=(const days& d) noexcept;
参数
d
要添加的天数。
返回值
*this
如果结果不在 [0, 255] 范围内,则未指定存储的值。
              
              operator-=
            
减去此 day日期。
constexpr day& operator-=(const days& d) noexcept;
参数
d
要减去的天数。
返回值
              *this。 如果结果不在 [0, 255] 范围内,则未指定存储的值。
 operator unsigned
获取 day 值。
explicit constexpr operator unsigned() const noexcept;
返回值
值 day
示例: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
另请参阅
<chrono>
              
              month_day 类
              
              month_day_last 类
year_month_day
year_month_day_last
              头文件引用