Шаг 100.
Основы языка Python.Работа с датой и временем. Модуль datetime. Манипуляции датой и временем. Класс timedelta

    На этом шаге мы рассмотрим назначение и примеры использования содержимого этого класса.

    Класс timedelta из модуля datetime позволяет выполнять операции над датами - например: складывать, вычитать, сравнивать и др. Конструктор класса имеет следующий формат:

  timedelta ( [days][, seconds][, microseconds][, milliseconds][, minutes] 
    [, hours] [, weeks] )

    Все параметры не являются обязательными и по умолчанию имеют значение 0. Первые три параметра считаются основными:

    Все остальные параметры автоматически преобразуются в следующие значения:

    Значения можно указывать через запятую в порядке следования параметров или присвоить значение названию параметра. В качестве примера укажем один час:

>>> datetime.timedelta (0, 0, 0, 0, 0, 1)
datetime.timedelta(0, 3600)
>>> datetime.timedelta (hours=1)
datetime.timedelta(0, 3600)

    Получить результат можно с помощью следующих атрибутов:

    Пример:

>>> d = datetime.timedelta( hours=1, days=2, milliseconds=1 )
>>> d
datetime.timedelta(2, 3600, 1000)
>>> d.days, d.seconds, d.microseconds
(2, 3600, 1000)
>>> repr (d), str(d)
('datetime.timedelta(2, 3600, 1000)', '2 days, 1:00:00.001000')

    Получить результат в секундах позволяет метод total_seconds():

>>> d = datetime.timedelta (minutes=1)
>>> d.total_seconds()
60.0

    Над экземплярами класса timedelta можно производить арифметические операции +, -, /, //, % и *, использовать унарные операторы + и -, а также получать абсолютное значение с помощью функции abs(). Примеры:

>>> d1 = datetime.timedelta (days=2)
>>> d2 = datetime.timedelta (days=7)
>>> d1 + d2, d2 - d1 # Сложение и вычитание
(datetime.timedelta(9), datetime.timedelta(5))
>>> d2 / d1 # Деление
3.5
>>> d1 / 2, d2 / 2.5 # Деление
(datetime.timedelta(1), datetime.timedelta(2, 69120))
>>> d2 // d1 # Деление
3
>>> d1 // 2, d2 // 2 # Деление
(datetime.timedelta(1), datetime.timedelta(3, 43200))
>>> d2 % d1 # Остаток
datetime.timedelta(1)
>>> d1 * 2, d2 * 2 # Умножение
(datetime.timedelta(4), datetime.timedelta(14))
>>> 2 * d1, 2 * d2 # Умножение
(datetime.timedelta(4), datetime.timedelta(14))
>>> d3 = -d1
>>> d3, abs(d3)
(datetime.timedelta(-2), datetime.timedelta(2))

    Кроме того, можно использовать операторы сравнения =, ! =, <, <=, > и >=. Пример:

>>> d1 = datetime.timedelta (days=2)
>>> d2 = datetime.timedelta (days=7)
>>> d3 = datetime.timedelta (weeks=1)
>>> d1 == d2, d2 == d3 # Проверка на равенство
(False, True)
>>> d1 != d2, d2 != d3 # Проверка на неравенство
(True, False)
>>> d1 < d2, d2 <= d3 # Меньше, меньше или равно
(True, True)
>>> d1 > d2, d2 >= d3 # Больше, больше или равно
(False, True)

    Также можно получать строковое представление объекта timedelta с помощью функций str() и rерr():

>>> d = datetime.timedelta (hours = 25, minutes = 5, seconds = 27)
>>> str(d)
'1 day, 1:05:27'
>>> repr(d)
'datetime.timedelta(1, 3927)'

    Поддерживаются следующие атрибуты класса:

    Выведем значения этих атрибутов:

>>> datetime.timedelta.min
datetime.timedelta(-999999999)
>>> datetime.timedelta.max
datetime.timedelta(999999999, 86399, 999999)
>>> datetime.timedelta.resolution
datetime.timedelta(0, 0, 1)

    На следующем шаге мы рассмотрим класс date.




Предыдущий шаг Содержание Следующий шаг