Python wx.FileDropTarget и сетевые пути

Предполагая, что день месяца не имеет значения (т.е. разница между 2011.1.1 и 2010.12.31 равна 1), с date1> date2, дающим положительное значение, а date2> date1 - отрицательное значение

((date1.Year - date2.Year) * 12) + date1.Month - date2.Month

Или, если вы хотите приблизительное количество «средних месяцев» между двумя датами, следующее должно работать для всех, но очень больших различий в дате.

date1.Subtract(date2).Days / (365.25 / 12)

Обратите внимание, что если вы должны использовать последнее решение, тогда ваши юнит-тесты должны указывать самый широкий диапазон дат, для которого ваше приложение разработано для работы и соответствующим образом оценивает результаты расчета.


Обновление (с помощью Gary )

Если использовать метод «средних месяцев», то для более «среднего числа дней в году» используется несколько более точный номер 365.2425 .

0
задан Magen 28 February 2019 в 20:35
поделиться