3#ifndef TETL_CHRONO_YEAR_HPP
4#define TETL_CHRONO_YEAR_HPP
16 constexpr explicit year(
int y) noexcept
17 : _count{
static_cast<int16_t>(y)}
40 _count =
static_cast<int16_t>(_count + countS.count());
46 _count =
static_cast<int16_t>(_count - countS.count());
50 [[nodiscard]]
constexpr auto operator+() const noexcept ->
year {
return *
this; }
54 [[nodiscard]]
constexpr auto is_leap() const noexcept ->
bool
56 return (_count % 4 == 0) and (_count % 100 != 0 or _count % 400 == 0);
59 [[nodiscard]]
constexpr explicit operator int() const noexcept {
return _count; }
63 [[nodiscard]]
static constexpr auto min() noexcept ->
year {
return year{-32767}; }
65 [[nodiscard]]
static constexpr auto max() noexcept ->
year {
return year{32767}; }
69 return static_cast<int>(lhs) ==
static_cast<int>(rhs);
74 return static_cast<int>(lhs) <
static_cast<int>(rhs);
79 return static_cast<int>(lhs) <=
static_cast<int>(rhs);
84 return static_cast<int>(lhs) >
static_cast<int>(rhs);
89 return static_cast<int>(lhs) >=
static_cast<int>(rhs);
98 return year{
static_cast<int>(
static_cast<int>(lhs) + rhs.count())};
107 return years{
static_cast<int>(lhs) -
static_cast<int>(rhs)};
114inline namespace literals {
115inline namespace chrono_literals {
128using namespace etl::literals::chrono_literals;
constexpr auto operator+(day const &d, days const &ds) noexcept -> day
Definition day.hpp:92
duration< int_least32_t, ratio< 2629746 > > years
Signed integer type of at least 17 bits.
Definition duration.hpp:374
constexpr auto operator-(day const &d, days const &ds) noexcept -> day
Definition day.hpp:102
Definition adjacent_find.hpp:8
TETL_BUILTIN_INT16 int16_t
Signed integer type with width of exactly 16 bits.
Definition int_t.hpp:14
constexpr auto operator--(int) noexcept -> year
Definition year.hpp:35
static constexpr auto min() noexcept -> year
Definition year.hpp:63
friend constexpr auto operator>(year lhs, year rhs) noexcept -> bool
Definition year.hpp:82
friend constexpr auto operator<=(year lhs, year rhs) noexcept -> bool
Definition year.hpp:77
friend constexpr auto operator>=(year lhs, year rhs) noexcept -> bool
Definition year.hpp:87
constexpr auto ok() const noexcept -> bool
Definition year.hpp:61
static constexpr auto max() noexcept -> year
Definition year.hpp:65
constexpr year(int y) noexcept
Definition year.hpp:16
constexpr auto operator++(int) noexcept -> year
Definition year.hpp:27
friend constexpr auto operator<(year lhs, year rhs) noexcept -> bool
Definition year.hpp:72
constexpr auto operator++() noexcept -> year &
Definition year.hpp:21
constexpr auto is_leap() const noexcept -> bool
Definition year.hpp:54
constexpr auto operator-=(years const &countS) noexcept -> year &
Definition year.hpp:44
constexpr auto operator+=(years const &countS) noexcept -> year &
Definition year.hpp:37
constexpr auto operator--() noexcept -> year &
Definition year.hpp:29
constexpr auto operator-() const noexcept -> year
Definition year.hpp:52
friend constexpr auto operator==(year lhs, year rhs) noexcept -> bool
Definition year.hpp:67
constexpr auto operator+() const noexcept -> year
Definition year.hpp:50
static constexpr auto min() noexcept
Definition numeric_limits.hpp:20