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 — локальная установка не требуется.
Все уроки этого курса
- date, time, datetime
- Timedelta и арифметика
- Форматирование и разбор
- Часовые пояса с zoneinfo