is_am / is_pm / make12 / make24

is_am / is_pm / make12 / make24 (12시간제 시간 변환)

시간을 오전/오후 판정하고 12/24시간제로 변환하는 유틸리티 함수들이에요. <chrono> 헤더, C++20부터.

출처: cppreference

본문

시간(std::chrono::hours)을 오전·오후로 판정하거나, 12시간제와 24시간제 사이를 변환하는 함수들이 있어요.

constexpr bool is_am( const std::chrono::hours& h ) noexcept;   // (1)
constexpr bool is_pm( const std::chrono::hours& h ) noexcept;   // (2)
constexpr std::chrono::hours make12( const std::chrono::hours& h ) noexcept;   // (3)
constexpr std::chrono::hours make24( const std::chrono::hours& h, bool is_pm ) noexcept;  // (4)
  • is_am(h): h가 오전(0~11시)이면 true.
  • is_pm(h): h가 오후(12~23시)이면 true.
  • make12(h): 24시간제 시각을 12시간제(1~12)로 변환해요.
  • make24(h, is_pm): 12시간제 시각과 오전/오후를 받아 24시간제로 변환해요.
using namespace std::chrono;
bool am = is_am(hours{9});     // true
hours h12 = make12(hours{15}); // 3 (오후 3시를 12시간제로)
hours h24 = make24(hours{3}, true);  // 15

오전/오후 표기(예: "3:00 PM")를 다루거나 12/24시간제를 변환할 때 써요. 항상 hours를 반환/받으므로 hours{0}~hours{23} 값에 대해 동작해요.

더 알아보기 (Learn more)

cppreference