CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
calendar::detail Namespace Reference

Functions

template<IsDuration From, IsDuration To>
constexpr auto checked_duration_cast (const From elapsed) -> To
 Cast an arithmetic duration to a signed integral duration without overflowing intermediates.
template<IsDuration Duration>
constexpr auto checked_time_of_day (const Duration elapsed) -> nanoseconds
 Validate the original and converted day durations and return the nanosecond count.
template<IsDuration Duration>
requires std::integral<typename Duration::rep>
constexpr auto checked_day (const Duration elapsed) -> days
 Floor an integral epoch duration to a day within the Gregorian year range.
template<IsDuration Duration>
requires std::floating_point<typename Duration::rep>
constexpr auto checked_day (const Duration elapsed) -> days
 Floor a floating epoch duration, checking the original and rounded day ranges.
template<IsDuration Duration>
requires std::integral<typename Duration::rep>
constexpr auto time_of_day (const Duration elapsed, const days day) -> nanoseconds
 Return the checked day remainder without overflowing integral intermediates.
template<IsDuration Duration>
requires std::floating_point<typename Duration::rep>
constexpr auto time_of_day (const Duration elapsed, const days day) -> nanoseconds
 Reject unrepresentable floating remainders of an epoch duration.

Variables

constexpr auto FIRST_GREGORIAN_DAY
constexpr auto END_GREGORIAN_DAY

Function Documentation

◆ checked_day() [1/2]

template<IsDuration Duration>
requires std::floating_point<typename Duration::rep>
auto calendar::detail::checked_day ( const Duration elapsed) ->days
nodiscardconstexpr

Floor a floating epoch duration, checking the original and rounded day ranges.

◆ checked_day() [2/2]

template<IsDuration Duration>
requires std::integral<typename Duration::rep>
auto calendar::detail::checked_day ( const Duration elapsed) ->days
nodiscardconstexpr

Floor an integral epoch duration to a day within the Gregorian year range.

◆ checked_duration_cast()

template<IsDuration From, IsDuration To>
auto calendar::detail::checked_duration_cast ( const From elapsed) ->To
nodiscardconstexpr

Cast an arithmetic duration to a signed integral duration without overflowing intermediates.

◆ checked_time_of_day()

template<IsDuration Duration>
auto calendar::detail::checked_time_of_day ( const Duration elapsed) ->nanoseconds
nodiscardconstexpr

Validate the original and converted day durations and return the nanosecond count.

◆ time_of_day() [1/2]

template<IsDuration Duration>
requires std::floating_point<typename Duration::rep>
auto calendar::detail::time_of_day ( const Duration elapsed,
const days day )->nanoseconds
nodiscardconstexpr

Reject unrepresentable floating remainders of an epoch duration.

◆ time_of_day() [2/2]

template<IsDuration Duration>
requires std::integral<typename Duration::rep>
auto calendar::detail::time_of_day ( const Duration elapsed,
const days day )->nanoseconds
nodiscardconstexpr

Return the checked day remainder without overflowing integral intermediates.

Variable Documentation

◆ END_GREGORIAN_DAY

auto calendar::detail::END_GREGORIAN_DAY
inlineconstexpr

◆ FIRST_GREGORIAN_DAY

auto calendar::detail::FIRST_GREGORIAN_DAY
inlineconstexpr