- chrono[meta header]
- std::chrono[meta namespace]
- class[meta id-type]
- cpp20[meta cpp]
namespace std::chrono {
template <class Duration>
class hh_mm_ss;
}
hh_mm_ss
は、任意の時間間隔型の値を、時:分:秒それと可能であれば秒未満の時間に分割するクラスである。秒未満の時間間隔はある非負の10の乗数ベースの単位の値である。
Duration
テンプレートパラメータとしては、時間を分割する精度を指定する。
このクラスは、入力の時間間隔が負である場合でも動作するよう、負の時間間隔をモデル化する。ただし、負である場合でも、各フィールドは非負の時間間隔を返す。
Duration
がduration
クラステンプレートのインスタンスでない場合、プログラムは不適格となる
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++20 |
hh_mm_ss& operator=(const hh_mm_ss&) = default; hh_mm_ss& operator=(hh_mm_ss&&) = default; |
代入演算子 |
C++20 |
名前 |
説明 |
対応バージョン |
static constexpr bool fractional_width |
precision によって表現される小数の小数桁数 |
C++20 |
#include <iostream>
#include <chrono>
namespace chrono = std::chrono;
using namespace std::chrono_literals;
int main()
{
// コンストラクタ引数からテンプレートパラメータDurationを推論
chrono::hh_mm_ss time2{15h + 30min + 20s}; // 秒単位
std::cout << time2 << std::endl;
// 時間間隔の型を明示的に指定
chrono::hh_mm_ss<chrono::seconds> time3{65745s}; // 秒単位
std::cout << time3 << std::endl;
chrono::hh_mm_ss time4{65745123ms}; // ミリ秒単位
std::cout << time4 << std::endl;
}
- chrono::hh_mm_ss[color ff0000]
- 15h[link duration/op_h.md]
- 30min[link duration/op_min.md]
- 20s[link duration/op_s.md]
- 65745s[link duration/op_s.md]
- 65745123ms[link duration/op_ms.md]
15:30:20
18:15:45
18:15:45.123
- Clang: 10.0 (出力ストリームなし) [mark verified]
- GCC: 11.1 (出力ストリームなし) [mark verified]
- Visual C++: 2019 Update 3 [mark noimpl]