eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2016-12-30 08:31 am
Entry tags:

Как считать разницу во времени между двумя событиями?

Позор мне! Гугол не дал мне ответа на этот вопрос...
Суть проблемы: ни UNIX-time, ни юлианская дата не учитывают високосных секунд (юлианская дата еще и некоторых високосных дней не учитывает). Поэтому отняв время события А из времени события Б мы не получим реальной разницы во времени между ними.
Неужто нет такой сишной системной функции, которая это считает, используя tzdata и нужно парсить этот файл самому?

UPD. Решение было у меня под носом: это умеет libSOFA.

[identity profile] eddy-em.livejournal.com 2016-12-31 07:04 am (UTC)(link)
Сама директория принадлежит пакету timezone-data:
equery b /usr/share/zoneinfo/      
 * Searching for /usr/share/zoneinfo/ ... 
sys-libs/timezone-data-2016h (/usr/share/zoneinfo)

Директория /usr/share/zoneinfo/right/ в состав пакета не входит.
Да и все равно: "СОФА" умеет вычислять атомное время, а по разнице двух атомных времен можно определить точный промежуток между событиями.