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를 비교해요.day와days(일 단위 기간)를 더하면 다음 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와 함께 조합해 쓰는 기본 단위예요.