Как я могу получить день недели, используя std::chrono после расчета дня/месяца/года?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу получить день недели, используя std::chrono после расчета дня/месяца/года?

Сообщение Anonymous »

Я рассчитал день, день месяца и год, а также секунды, минуты и часы, используя std::chrono::local_days, мне просто нужно получить день недели. Код, который я использую, был предоставлен Говардом Хиннантом в ответе здесь, комментарии мои:

Код: Выделить всё

auto tp = std::chrono::system_clock::now();
static auto const tz = std::chrono::current_zone();
static auto info = tz->get_info(tp); // CACHE THE TIMEZONE INFO
if (tp >= info.end) // APPARENTLY THE TIME ZONE INFO CAN CHANGE UP TO TWICE A YEAR
info = tz->get_info(tp);
auto tpl = std::chrono::local_days{} + (tp + info.offset - std::chrono::sys_days{});
auto tpd = floor(tpl);
std::chrono::year_month_day ymd{ tpd };
std::chrono::hh_mm_ss hms{ tpl - tpd };
На данный момент у меня есть то, о чем я упоминал выше: как мне получить день недели с как можно меньшим количеством повторных вызовов?

Подробнее здесь: https://stackoverflow.com/questions/784 ... ulated-the

Вернуться в «C++»