Я работаю с файлами netCDF4, которые содержат измерение времени. Значения этого измерения времени представляют собой двойные числа, представляющие дни с 15 10 1582 00:00. Чтобы пользователи могли взаимодействовать с данными, мне нужно преобразовать эти метки времени в фактические даты (например, 01:01:2014T00:00:00).
Исследуя это, я не смог найти решение для этого в С++. Библиотека netCDF Python предоставляет num2date, а также date2num, которые делают именно то, что мне нужно. К сожалению, я не смог найти эти функции в C++ lib. Я был бы признателен за любые предложения о том, как это сделать.
double
кажется довольно неуместным для подсчета дней.int64_t
намного точнее в этом вопросе (у вас доступно 64 бита, тогда как с двойным значением только 53 — если вам нужно больше бит, то происходит округление, и вы получите нежелательные результаты). Хорошо, вы можете использовать точность субдня с двойным, но даже 0,2 дня не могут быть представлены точно (периодически в двоичном формате)... - person Aconcagua   schedule 27.08.2019