Для получения абсолютной разницы между двумя датами в Python можно использовать модуль datetime и метод abs():
import datetime
date1 = datetime.date(2023, 10, 26)
date2 = datetime.date(2023, 11, 15)
difference = abs(date2 - date1)
print(difference.days) # Выведет: 20
Метод abs() гарантирует, что разница будет положительной, независимо от порядка дат.
Чтобы получить абсолютную разницу между двумя датами в Python, можно использовать модуль datetime и его класс timedelta.
Вот пример кода:
import datetime
def absolute_date_difference(date1, date2):
"""
Вычисляет абсолютную разницу в днях между двумя датами.
Args:
date1: Первая дата (datetime.date или datetime.datetime).
date2: Вторая дата (datetime.date или datetime.datetime).
Returns:
Абсолютное значение разницы в днях (int).
"""
delta = abs(date2 - date1)
return delta.days
# Пример использования:
date_str1 = "2023-10-26"
date_str2 = "2023-11-01"
date1 = datetime.datetime.strptime(date_str1, "%Y-%m-%d").date()
date2 = datetime.datetime.strptime(date_str2, "%Y-%m-%d").date()
difference = absolute_date_difference(date1, date2)
print(f"Абсолютная разница в днях: {difference}") # Output: Абсолютная разница в днях: 6
# Пример с использованием datetime объектов напрямую
datetime1 = datetime.datetime(2023, 10, 26, 10, 30, 0)
datetime2 = datetime.datetime(2023, 10, 27, 12, 0, 0)
difference_seconds = abs(datetime2 - datetime1).total_seconds()
print(f"Абсолютная разница в секундах: {difference_seconds}") # Output: Абсолютная разница в секундах: 91800.0
Разберем код:
datetime.absolute_date_difference принимает две даты (date1 и date2) в качестве аргументов. Даты могут быть типа datetime.date или datetime.datetime.-. date2 - date1 вернет объект timedelta, представляющий разницу во времени.abs(), чтобы получить абсолютное значение разницы (чтобы результат всегда был положительным, вне зависимости от порядка дат).timedelta извлекаем количество дней с помощью атрибута .days. Если нужно получить разницу в других единицах времени (секунды, часы и т.д.) можно использовать метод .total_seconds().datetime с помощью datetime.datetime.strptime() и как получить объект date из datetime объекта с помощью .date(). Также демонстрируется пример работы непосредственно с объектами datetime, показывая разницу в секундах.Важные моменты:
strptime. Он должен соответствовать формату ваших строк.timedelta предоставляет различные атрибуты и методы для получения разницы в разных единицах времени (дни, секунды, часы и т.д.).abs() гарантирует, что разница будет всегда положительной.