4#ifndef TETL_CHRONO_DAY_HPP
5#define TETL_CHRONO_DAY_HPP
7#include <etl/_chrono/duration.hpp>
8#include <etl/_contracts/check.hpp>
9#include <etl/_cstdint/uint_t.hpp>
10#include <etl/_limits/numeric_limits.hpp>
24 constexpr explicit day(
unsigned d)
noexcept
25 : _count{
static_cast<
etl::uint8_t>(d)}
27 TETL_PRECONDITION(d < etl::numeric_limits<etl::uint8_t>::max());
32 return *
this += days{1};
44 return *
this -= days{1};
66 constexpr explicit operator unsigned()
const noexcept
73 return (_count > 0U)
and (_count < 32U);
78 return static_cast<
unsigned>(lhs) ==
static_cast<
unsigned>(rhs);
83 return static_cast<
unsigned>(lhs) <
static_cast<
unsigned>(rhs);
88 return static_cast<
unsigned>(lhs) <=
static_cast<
unsigned>(rhs);
93 return static_cast<
unsigned>(lhs) >
static_cast<
unsigned>(rhs);
98 return static_cast<
unsigned>(lhs) >=
static_cast<
unsigned>(rhs);
107 return day(static_cast<
unsigned>(d) +
static_cast<
unsigned>(ds
.count())
);
112 return day(static_cast<
unsigned>(d) +
static_cast<
unsigned>(ds
.count())
);
117 return day(static_cast<
unsigned>(d) -
static_cast<
unsigned>(ds
.count())
);
122 return days(
int(
unsigned(x)) -
int(
unsigned(y)));
constexpr auto operator+(day const &d, days const &ds) noexcept -> day
Definition day.hpp:105
constexpr auto operator-(day const &x, day const &y) noexcept -> days
Definition day.hpp:120
constexpr auto operator+(days const &ds, day const &d) noexcept -> day
Definition day.hpp:110
constexpr auto operator-(day const &d, days const &ds) noexcept -> day
Definition day.hpp:115
Definition adjacent_find.hpp:9
The class day represents a day in a month.
Definition day.hpp:21
constexpr operator unsigned() const noexcept
Definition day.hpp:66
constexpr auto ok() const noexcept -> bool
Definition day.hpp:71
friend constexpr auto operator<(day lhs, day rhs) noexcept -> bool
Definition day.hpp:81
friend constexpr auto operator==(day lhs, day rhs) noexcept -> bool
Definition day.hpp:76
constexpr auto operator--(int) noexcept -> day
Definition day.hpp:47
friend constexpr auto operator>=(day lhs, day rhs) noexcept -> bool
Definition day.hpp:96
constexpr auto operator++() noexcept -> day &
Definition day.hpp:30
constexpr auto operator++(int) noexcept -> day
Definition day.hpp:35
friend constexpr auto operator<=(day lhs, day rhs) noexcept -> bool
Definition day.hpp:86
constexpr day(unsigned d) noexcept
Definition day.hpp:24
friend constexpr auto operator>(day lhs, day rhs) noexcept -> bool
Definition day.hpp:91
constexpr auto operator+=(days const &d) noexcept -> day &
Definition day.hpp:54
constexpr auto operator--() noexcept -> day &
Definition day.hpp:42
constexpr auto operator-=(days const &d) noexcept -> day &
Definition day.hpp:60
constexpr auto count() const -> rep
Returns the number of ticks for this duration.
Definition duration.hpp:98