day

day (한 달 안의 날짜)

어느 달의 날(day)을 나타내는 타입이에요. 낮은 바이트 하나로 날짜를 표현하는 가벼운 chrono 타입이에요. <chrono> 헤더, C++20부터.

출처: cppreference

본문

std::chrono::day는 한 달 안의 하루를 나타내요. 정상 범위는 [1, 31]이지만, [0, 255]의 아무 값이나 담을 수 있어요(내부가 unsigned char 단위).

class day;

day는 TriviallyCopyable StandardLayoutType이에요. 그래서 값 복사가 저렴하고 안전하게 레이아웃에 의존할 수 있어요.

멤버 함수를 정리하면:

  • (constructor): day를 생성해요.
  • operator++/-- (int 포함): 날짜를 1씩 증가/감소시켜요.
  • operator+=/-=: 날짜 수를 더하거나 빼요.
  • operator unsigned: 저장된 day 값을 꺼내요.
  • ok(): 저장된 값이 유효한 날짜 범위에 있는지 확인해요.

연산자를 정리하면:

  • operator==/<=>: 두 day를 비교해요.
  • daydays(일 단위 기간)를 더하면 다음 day를 얻고, month와 결합하면 std::chrono::month_day가 돼요.
std::chrono::day d{15};   // 15일
auto md = std::chrono::month_day{std::chrono::April, d};  // 4월 15일

날짜 계산을 타입 안전하게 다룰 때, year/month와 함께 조합해 쓰는 기본 단위예요.

더 알아보기 (Learn more)

cppreference