概要
12時間ベースの時間を24時間ベースの時間範囲に変換する。
戻り値
is_pm
がfalse
である場合、h
が正午以前だと仮定して24時間時計での範囲[0h, 11h]
の等価な時間を返す- そうでない場合、
h
を正午以後だと仮定して24時間時計での範囲[12h, 23h]
の等価な時間を返す h
が[1h, 12h]
の範囲外である場合、未規定の値を返す
例
#include <cassert>
#include <chrono>
namespace chrono = std::chrono;
using namespace std::chrono_literals;
int main()
{
assert(chrono::make24(3h, false) == 3h);
assert(chrono::make24(12h, false) == 0h);
assert(chrono::make24(12h, true) == 12h);
assert(chrono::make24(1h, true) == 13h);
assert(chrono::make24(3h, true) == 15h);
assert(chrono::make24(11h, true) == 23h);
}
出力
バージョン
言語
- C++20
処理系
- Clang: 10.0 ✅
- GCC: 11.1 ✅
- Visual C++: 2019 Update 3 ❌