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;
 
 
  154    return (
jday.count() % 7) < 5;
 
 
  188constexpr std::optional<WallTime> 
parse_time(std::string_view 
sv) 
noexcept 
  202        if (
sv[8] != 
'-' && 
sv[8] != 
'T') {