17#ifndef TOOLBOX_SYS_DATE_HPP
18#define TOOLBOX_SYS_DATE_HPP
32constexpr auto operator""_ymd(
unsigned long long val)
noexcept
40constexpr auto operator""_jd(
unsigned long long val)
noexcept
63 return JDay{
k - 32075 + 1461 * (
i + 4800 + (
j - 14) / 12) / 4
64 + 367 * (
j - 2 - (
j - 14) / 12 * 12) / 12
65 - 3 * ((
i + 4900 + (
j - 14) / 12) / 100) / 4};
72 const auto year =
n / 10000;
73 const auto mon = (
n / 100 % 100);
74 const auto mday =
n % 100;
85 auto l =
jd.count() + 68569;
86 const auto n = 4 *
l / 146097;
87 l =
l - (146097 *
n + 3) / 4;
88 auto i = 4000 * (
l + 1) / 1461001;
89 l =
l - 1461 *
i / 4 + 31;
90 auto j = 80 *
l / 2447;
91 const auto k =
l - 2447 *
j / 80;
94 i = 100 * (
n - 49) +
i +
l;
128 const std::int64_t
ms_in_day = 24 * 60 * 60 * 1000;
147 return (
jday.count() % 7) < 5;
181constexpr std::optional<WallTime>
parse_time(std::string_view
sv)
noexcept
195 if (
sv[8] !=
'-' &&
sv[8] !=
'T') {