Магия libmapi
Можно я опять про libmapi?
В общем, из libmapi мне приходят два магических числа, они содержат диапазон — начало и конец периода, данные за который возвращает функция GetUserFreeBusyData. По внешнему виду видно, что это не unix timestamp (для несведующих, Unix timestamp — это число секунд с 1 января 1970 года).
По коду libmapi пытался выяснить что это. Код разбросан по файлам, но, в итоге, выглядит так:
// в t приходит <магическое число>
uint32_t t;
uint64_t time;
struct timespec ret;
time = t
time *= 60;
time *= 10000000;
ret.tv_nsec = (long) ((time % (1000 * 1000 * 10)) * 100);
d /= 1000*1000*10;
d -= 11644473600L;
// тут ещё парочка условий, которые не добавляют смысла
ret.tv_sec = (time_t)d;
В таком виде я так и не смог понять что это за число. Порыскав по поисковикам, наткнулся на пост, где упоминается, что это всего лишь число минут с 1 января 1601 года.
Так что мой итоговый код на Python выглядит (без системных вызовов) так:
publish_start, publish_end = map(
lambda x: x * 60 - 11644473600, # 369 лет
(publish_start, publish_end)
)