Как можно вычислить разницу между двумя объектами `datetime`?

Разницу между двумя объектами datetime в Python можно вычислить с помощью оператора -. Результатом будет объект timedelta, представляющий собой разницу во времени.

    
      from datetime import datetime

      dt1 = datetime(2023, 10, 26, 10, 0, 0)
      dt2 = datetime(2023, 10, 26, 12, 30, 0)

      difference = dt2 - dt1  # Результат: timedelta(seconds=9000)
      print(difference)
    
  

Объект timedelta имеет атрибуты, такие как days, seconds, microseconds, которые можно использовать для получения разницы в различных единицах измерения времени.


Для вычисления разницы между двумя объектами datetime в Python, достаточно просто вычесть один объект из другого. Результатом будет объект timedelta, который представляет собой разницу во времени.

Пример:

    
      import datetime

      # Создаем два объекта datetime
      datetime_object1 = datetime.datetime(2023, 10, 26, 10, 0, 0)
      datetime_object2 = datetime.datetime(2023, 10, 26, 12, 30, 0)

      # Вычисляем разницу
      time_difference = datetime_object2 - datetime_object1

      # Выводим результат
      print(time_difference)  # Output: 2:30:00
      print(type(time_difference)) # Output: <class 'datetime.timedelta'>
    
  

Объект timedelta имеет следующие полезные атрибуты:

  • days: Количество дней в разнице.
  • seconds: Количество секунд в разнице (без учета дней).
  • microseconds: Количество микросекунд в разнице.
  • total_seconds(): Возвращает общее количество секунд в разнице.

Пример использования атрибутов timedelta:

    
      import datetime

      datetime_object1 = datetime.datetime(2023, 10, 25, 10, 0, 0)
      datetime_object2 = datetime.datetime(2023, 10, 26, 12, 30, 0)

      time_difference = datetime_object2 - datetime_object1

      print(time_difference.days)  # Output: 1
      print(time_difference.seconds)  # Output: 9000 (2 часа 30 минут = 9000 секунд)
      print(time_difference.total_seconds()) # Output: 95400.0 (1 день 2 часа 30 минут в секундах)
    
  

Важно: Вычитание объектов datetime всегда возвращает объект timedelta, даже если разница составляет 0 дней, 0 секунд и т.д. Для сравнения дат, можно сравнивать сами объекты datetime напрямую (например, с помощью >, <, ==).

0