Как дата хранится внутри в boost :: gregorian :: date?

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

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

1

Решение

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]