Timedelta i działania arytmetyczne
Obliczaj różnice między datami
Timedelta i działania arytmetyczne to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Czym jest timedelta?
Obiekt timedelta reprezentuje czas trwania — odstęp między dwoma punktami w czasie. Jest wynikiem odjęcia jednej daty lub daty i czasu od drugiej.
Należy zaimportować go za pomocą from datetime import timedelta.
from datetime import timedelta
gap = timedelta(days=3)
print(gap)Tworzenie czasu trwania
Obiekt timedelta należy utworzyć za pomocą argumentów nazwanych, takich jak days, hours, minutes i seconds. Python normalizuje je do postaci dni, sekund i mikrosekund.
from datetime import timedelta
d = timedelta(days=1, hours=6, minutes=30)
print(d)Odejmowanie dwóch dat
Odjęcie jednego obiektu date od drugiego tworzy obiekt timedelta. W ten sposób można zmierzyć odstęp między dwoma dniami.
from datetime import date
start = date(2026, 1, 1)
end = date(2026, 5, 30)
diff = end - start
print(diff)Liczba dni między datami
Atrybut .days obiektu timedelta podaje liczbę pełnych dni jako liczbę całkowitą — doskonale nadaje się do odpowiedzi na pytanie „ile dni pozostało do X?”.
from datetime import date
new_year = date(2027, 1, 1)
today = date(2026, 5, 30)
print('Days left:', (new_year - today).days)Dodawanie czasu do daty
Dodanie obiektu timedelta do obiektu date lub datetime przesuwa moment w przyszłość. Odjęcie go przesuwa moment w przeszłość.
from datetime import date, timedelta
today = date(2026, 5, 30)
in_two_weeks = today + timedelta(days=14)
print('In two weeks:', in_two_weeks)Cofanie się w czasie
Odjęcie obiektu timedelta przesuwa datę w przeszłość. W tym przypadku znajdujemy datę sprzed tygodnia.
from datetime import date, timedelta
today = date(2026, 5, 30)
last_week = today - timedelta(weeks=1)
print('A week ago:', last_week)Łączna liczba sekund trwania
Metoda .total_seconds() zwraca cały czas trwania jako pojedynczą liczbę zmiennoprzecinkową wyrażoną w sekundach. Jest przydatna przy precyzyjnych obliczeniach czasu.
from datetime import timedelta
d = timedelta(hours=2, minutes=30)
print('Total seconds:', d.total_seconds())Arytmetyka obiektów datetime
Te same zasady dotyczą obiektów datetime. Dodanie czasu trwania prawidłowo przesuwa zarówno datę, jak i godzinę, przechodząc na kolejny dzień, gdy jest to konieczne.
from datetime import datetime, timedelta
start = datetime(2026, 5, 30, 23, 0)
later = start + timedelta(hours=3)
print(later)Mnożenie czasu trwania
Obiekt timedelta można pomnożyć przez liczbę, aby odpowiednio go przeskalować. Dzięki temu łatwo obliczyć na przykład czas trwania pięciu cykli sprintu po dwa tygodnie każdy.
from datetime import timedelta
sprint = timedelta(weeks=2)
five_sprints = sprint * 5
print(five_sprints)Porównywanie czasu trwania
Czasy trwania można porównywać za pomocą operatorów <, > i ==. Pozwala to sprawdzić, czy jeden odcinek czasu jest dłuższy od drugiego.
from datetime import timedelta
a = timedelta(hours=5)
b = timedelta(days=1)
print(a < b)
print(max(a, b))Rozdzielanie dni i sekund
Obiekt timedelta przechowuje osobno wartości .days i .seconds. Atrybut .seconds zawiera wyłącznie sekundy pozostałe w ostatnim dniu (od 0 do 86399), a nie ich łączną liczbę.
from datetime import timedelta
d = timedelta(days=2, hours=3)
print('days:', d.days)
print('seconds:', d.seconds)Szybkie sprawdzenie
Co zwraca odjęcie jednego obiektu date od drugiego?
Podsumowanie: Timedelta i arytmetyka
Najważniejsze informacje:
timedelta(days=, hours=, ...)tworzy czas trwania.- Odjęcie dwóch dat lub obiektów datetime zwraca obiekt
timedelta. - Dodanie lub odjęcie obiektu
timedeltaprzesuwa daty do przodu lub do tyłu. - Odczytaj wartość
.daysalbo wywołaj.total_seconds(), aby uzyskać wartość liczbową, a czas trwania pomnóż, aby go przeskalować.
from datetime import date, timedelta
today = date(2026, 5, 30)
print('In 100 days:', today + timedelta(days=100))Często zadawane pytania
Czy lekcja „Timedelta i działania arytmetyczne” jest bezpłatna?
Tak — pełny tekst „Timedelta i działania arytmetyczne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Timedelta i działania arytmetyczne”?
Obliczaj różnice między datami Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Timedelta i działania arytmetyczne”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- date, time, datetime
- Timedelta i działania arytmetyczne
- Formatowanie i analizowanie
- Strefy czasowe z zoneinfo