Цитата:
Сообщение от SergVK
Добрый день коллеги.
Столкнулся с необходимостью хранить дату и вычислять разницу с текущей, логично преобразовать ее в количество дней и хранить как одно число long.
И вот тут возникла загвоздка.
По описанию функции GetDays выдает количество дней прошедших с 01.01.0001.
Есть общепринятый алгоритм расчета дня по Юлианскому и Григорианскому календарю, например такой
wiki
Если считать по нему 01.01.0001 это 1721426 й день
Например сегодня 14.08.2019 это 2458710 й день
Разница 737284 дней.
GetDays выдает 737300. Ошибка 15 дней?
Понятно, что можно эту ошибку учесть и не париться, но хотелось бы понять, откуда она берется, где и когда ждать подвоха.
|
Блок передаёт то, что ему отвечает стандартная функция из библиотеки C++.
Думаю, если бы в этой функции была ошибка, то за несколько десятков лет это хоть кто-то, но заметил.
Другими словами, я не проверяя ваши расчёты считаю, что скорее всего вы в чём-то ошиблись или что-то не учли. Високосные года, например.