>Вычисляет смещение от utc-времени до локального на основе dst и utc-смещение.
Логика заключается в следующем. Начиная со времени UTC, используйте смещение для создания метки для локального времени, не скорректированного на dst. Затем вызовите dst_rules::local_is_dst с некорректированным местным временем. Результаты этой функции либо неукоснительно решат, что начальное местное время находится в dst, либо вернут незаконный или неоднозначный результат. Незаконный результат происходит только в конце dst (где пропущены ярлыки) и указывает, что dst закончился. Неоднозначный результат означает, что нам нужно перепроверить, внося корректировку dst, а затем перепроверяя. Если dst-смещение добавляется к времени utc, и перепроверка оказывается недвусмысленной, то мы проходим границу. Если это все еще неоднозначно, то мы опережаем границу, и dst все еще действует.
TODO & #8211; проверьте, все ли смещение dst положительно. Если нет, то алгоритм должен проверить это и обратить вспять незаконную/двусмысленную логику.
Параметры:
<t>
Время UTC для расчета смещения к местному времени Эта корректировка зависит от следующих наблюдений за работой смещения границы DST. С тех пор Метки времени UTC монотонно увеличиваются, и мы можем определить, находится ли данное локальное время в DST или нет, и, следовательно, соответствующим образом скорректировать смещение.
Статья Class template static_local_time_adjustor раздела The Boost C++ Libraries BoostBook Documentation Subset Library Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.