0Pricing
Python Academy · Урок

Timedelta и арифметика

Вычисляйте разницу между датами

«Timedelta и арифметика» — бесплатный урок Python Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Что такое timedelta?

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

Импортируйте его с помощью from datetime import timedelta.

from datetime import timedelta
gap = timedelta(days=3)
print(gap)

Создание продолжительности

Создайте объект timedelta с помощью именованных аргументов, таких как days, hours, minutes и seconds. Python нормализует их, представляя результат в днях, секундах и микросекундах.

from datetime import timedelta
d = timedelta(days=1, hours=6, minutes=30)
print(d)

Вычитание двух дат

Вычитание одной даты date из другой создаёт объект timedelta. Так можно измерить расстояние между двумя днями.

from datetime import date
start = date(2026, 1, 1)
end = date(2026, 5, 30)
diff = end - start
print(diff)

Количество дней между датами

Атрибут .days объекта timedelta возвращает количество полных дней в виде целого числа — именно это нужно, чтобы ответить на вопрос «сколько дней осталось до X?».

from datetime import date
new_year = date(2027, 1, 1)
today = date(2026, 5, 30)
print('Days left:', (new_year - today).days)

Добавление времени к дате

Добавьте timedelta к объекту date или datetime, чтобы переместиться вперёд во времени. Вычтите его, чтобы переместиться назад.

from datetime import date, timedelta
today = date(2026, 5, 30)
in_two_weeks = today + timedelta(days=14)
print('In two weeks:', in_two_weeks)

Возвращение в прошлое

Вычитание timedelta переносит дату в прошлое. Здесь мы находим дату недельной давности.

from datetime import date, timedelta
today = date(2026, 5, 30)
last_week = today - timedelta(weeks=1)
print('A week ago:', last_week)

Общее количество секунд в длительности

Метод .total_seconds() возвращает всю длительность в виде одного числа с плавающей точкой, выраженного в секундах. Это удобно для точных вычислений со временем.

from datetime import timedelta
d = timedelta(hours=2, minutes=30)
print('Total seconds:', d.total_seconds())

Арифметика дат и времени

Те же правила применяются к объектам datetime. Добавление длительности правильно сдвигает и дату, и время на часах, при необходимости переходя на следующие сутки.

from datetime import datetime, timedelta
start = datetime(2026, 5, 30, 23, 0)
later = start + timedelta(hours=3)
print(later)

Умножение длительностей

timedelta можно умножать на число, чтобы масштабировать длительность. Так легко, например, вычислить длительность пяти спринт-циклов по две недели.

from datetime import timedelta
sprint = timedelta(weeks=2)
five_sprints = sprint * 5
print(five_sprints)

Сравнение длительностей

Длительности можно сравнивать друг с другом с помощью <, > и ==. Это позволяет проверить, длиннее ли один промежуток времени другого.

from datetime import timedelta
a = timedelta(hours=5)
b = timedelta(days=1)
print(a < b)
print(max(a, b))

Разделение дней и секунд

timedelta хранит .days и .seconds отдельно. Атрибут .seconds содержит только оставшиеся секунды в пределах последних суток (от 0 до 86399), а не общее количество секунд.

from datetime import timedelta
d = timedelta(days=2, hours=3)
print('days:', d.days)
print('seconds:', d.seconds)

Быстрая проверка

Что возвращает вычитание одной даты date из другой?

Повторение: длительности и арифметика

Главное:

  • timedelta(days=, hours=, ...) создаёт длительность.
  • Вычитание двух дат или объектов даты и времени возвращает timedelta.
  • Добавляйте timedelta к датам или вычитайте его, чтобы перемещать даты вперёд или назад.
  • Читайте .days или вызывайте .total_seconds(), чтобы получить числовые значения, а для масштабирования длительности умножайте её на число.
from datetime import date, timedelta
today = date(2026, 5, 30)
print('In 100 days:', today + timedelta(days=100))

Часто задаваемые вопросы

Урок «Timedelta и арифметика» бесплатный?

Да — полный текст урока «Timedelta и арифметика» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Timedelta и арифметика»?

Вычисляйте разницу между датами Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Timedelta и арифметика»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. date, time, datetime
  2. Timedelta и арифметика
  3. Форматирование и разбор
  4. Часовые пояса с zoneinfo
← Назад к Python Academy