std::chrono::hh_mm_ss<Duration>::hh_mm_ss

来自cppreference.com
 
 
 
 
constexpr hh_mm_ss() noexcept : hh_mm_ss{Duration::zero()} {}
(1)
constexpr explicit hh_mm_ss( Duration d );
(2)

构造 hh_mm_ss 对象。

1) 构造对应 Duration::zero()hh_mm_ss 对象。
2) 构造对应 dhh_mm_ss 对象:
  • is_negative() 返回 d < Duration::zero()
  • hours() 返回 std::chrono::duration_cast<std::chrono::hours>(abs(d))
  • minutes() 返回 std::chrono::duration_cast<std::chrono::minutes>(abs(d) - hours())
  • seconds() 返回
    std::chrono::duration_cast<std::chrono::seconds>(abs(d) - hours() - minutes())
  • std::chrono::treat_as_floating_point_v<precision::rep>truesubseconds() 返回 abs(d) - hours() - minutes() - seconds();否则返回 std::chrono::duration_cast<precision>(abs(d) - hours() - minutes() - seconds())

参数

d - 要拆分的时长。

示例

#include <chrono>
#include <print>
 
int main()
{
    std::println("默认构造函数: {}", std::chrono::hh_mm_ss<std::chrono::minutes>{});

    std::chrono::time_point now = std::chrono::system_clock::now();
    std::chrono::hh_mm_ss time_of_day{now - std::chrono::floor<std::chrono::days>(now)};
    std::println("日内时间是: {}", time_of_day);
}

可能的输出:

默认构造函数: 00:00:00
日内时间是: 12:13:14.151617189