3#ifndef TETL_CHRONO_DAY_HPP
4#define TETL_CHRONO_DAY_HPP
23 constexpr explicit day(
unsigned d) noexcept
59 constexpr explicit operator unsigned() const noexcept {
return _count; }
61 [[nodiscard]]
constexpr auto ok() const noexcept ->
bool {
return (_count > 0U) and (_count < 32U); }
65 return static_cast<unsigned>(lhs) ==
static_cast<unsigned>(rhs);
70 return static_cast<unsigned>(lhs) <
static_cast<unsigned>(rhs);
75 return static_cast<unsigned>(lhs) <=
static_cast<unsigned>(rhs);
80 return static_cast<unsigned>(lhs) >
static_cast<unsigned>(rhs);
85 return static_cast<unsigned>(lhs) >=
static_cast<unsigned>(rhs);
94 return day(
static_cast<unsigned>(d) +
static_cast<unsigned>(ds.count()));
99 return day(
static_cast<unsigned>(d) +
static_cast<unsigned>(ds.count()));
104 return day(
static_cast<unsigned>(d) -
static_cast<unsigned>(ds.count()));
109 return days(
int(
unsigned(x)) -
int(
unsigned(y)));
120[[nodiscard]]
constexpr auto operator""_d(
unsigned long long d)
noexcept ->
etl::chrono::day
130using namespace etl::literals::chrono_literals;
#define TETL_PRECONDITION(...)
Definition check.hpp:16
constexpr auto operator+(day const &d, days const &ds) noexcept -> day
Definition day.hpp:92
duration< int_least32_t, ratio< 86400 > > days
Signed integer type of at least 25 bits.
Definition duration.hpp:365
constexpr auto operator-(day const &d, days const &ds) noexcept -> day
Definition day.hpp:102
Definition adjacent_find.hpp:8
TETL_BUILTIN_UINT8 uint8_t
Unsigned integer type with width of exactly 8 bits.
Definition uint_t.hpp:11
The class day represents a day in a month.
Definition day.hpp:20
constexpr auto ok() const noexcept -> bool
Definition day.hpp:61
friend constexpr auto operator<(day lhs, day rhs) noexcept -> bool
Definition day.hpp:68
friend constexpr auto operator==(day lhs, day rhs) noexcept -> bool
Definition day.hpp:63
constexpr auto operator--(int) noexcept -> day
Definition day.hpp:40
friend constexpr auto operator>=(day lhs, day rhs) noexcept -> bool
Definition day.hpp:83
constexpr auto operator++() noexcept -> day &
Definition day.hpp:29
constexpr auto operator++(int) noexcept -> day
Definition day.hpp:31
friend constexpr auto operator<=(day lhs, day rhs) noexcept -> bool
Definition day.hpp:73
constexpr day(unsigned d) noexcept
Definition day.hpp:23
friend constexpr auto operator>(day lhs, day rhs) noexcept -> bool
Definition day.hpp:78
constexpr auto operator+=(days const &d) noexcept -> day &
Definition day.hpp:47
constexpr auto operator--() noexcept -> day &
Definition day.hpp:38
constexpr auto operator-=(days const &d) noexcept -> day &
Definition day.hpp:53
static constexpr auto max() noexcept
Definition numeric_limits.hpp:21