[time.cal.day.overview]

# 30 Time library [[time]](./#time)

## 30.8 The civil calendar [[time.cal]](time.cal#day.overview)

### 30.8.3 Class day [[time.cal.day]](time.cal.day#overview)

#### 30.8.3.1 Overview [time.cal.day.overview]

namespace std::chrono {class day {unsigned char d_; // *exposition only*public: day() = default; constexpr explicit day(unsigned d) noexcept; constexpr day& operator++() noexcept; constexpr day operator++(int) noexcept; constexpr day& operator--() noexcept; constexpr day operator--(int) noexcept; constexpr day& operator+=(const days& d) noexcept; constexpr day& operator-=(const days& d) noexcept; constexpr explicit operator unsigned() const noexcept; constexpr bool ok() const noexcept; };}

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L3968)

day represents a day of a month[.](#1.sentence-1)

It normally holds values in the range 1 to 31,
but may hold non-negative values outside this range[.](#1.sentence-2)

It can be constructed with any unsigned value,
which will be subsequently truncated to fit into day's unspecified internal storage[.](#1.sentence-3)

day meets the [*Cpp17EqualityComparable*](utility.arg.requirements#:Cpp17EqualityComparable "16.4.4.2 Template argument requirements [utility.arg.requirements]") (Table [28](utility.arg.requirements#tab:cpp17.equalitycomparable "Table 28: Cpp17EqualityComparable requirements"))
and [*Cpp17LessThanComparable*](utility.arg.requirements#:Cpp17LessThanComparable "16.4.4.2 Template argument requirements [utility.arg.requirements]") (Table [29](utility.arg.requirements#tab:cpp17.lessthancomparable "Table 29: Cpp17LessThanComparable requirements")) requirements,
and participates in basic arithmetic with days objects,
which represent a difference between two day objects[.](#1.sentence-4)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L3979)

day is a trivially copyable and standard-layout class type[.](#2.sentence-1)
