2016-06-23 4 views
1

Документация Boost гласит следующее: «Внутренний boost :: gregorian :: date хранится как 32-битный целочисленный тип». , Я нашел это по ссылке: http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/gregorian.html.Как дата хранится внутри boost :: gregorian :: date?

Как вычисляется это 32-битное целое число? Это число дней, прошедших с эпохи (как, например, Джода на Java)?

ответ

1

С documentation, текущая реализация поддерживает даты в диапазоне 1400-Jan-01 до 9999-Dec-31

анализа кода, класс подталкивание :: григорианский :: дата хранит даты как uint32_t integer named days_. Для 1400-янв-01 это значение этого целого равно 2232400. Приращение в один день означает, что это целое число увеличивается на единицу. Таким образом, разницу в днях между двумя датами можно вычислить, просто вычитая их целые числа.