Obliczanie różnicy dat to proces wyznaczania różnicy między dwiema datami kalendarzowymi lub dodawania bądź odejmowania okresu czasu od podanej daty. Kalkulator dat online pozwala określić dokładną liczbę dni, tygodni, miesięcy i lat między dowolnymi dwiema datami bez ręcznego liczenia. Stosuje się go w planowaniu projektów, prawie umów, rachunkowości finansowej i tworzeniu oprogramowania.
Złożoność obliczania dat wynika z nieregularnej struktury kalendarza gregoriańskiego. Miesiące mają 28, 29, 30 lub 31 dni. Lata mają 365 lub 366 dni w zależności od zasad dotyczących lat przestępnych. Proste odejmowanie numerów dni daje błędne wyniki, gdy daty obejmują różne miesiące lub lata. Właściwe algorytmy obliczania różnicy dat muszą uwzględniać te nieregularności, przechodząc przez każdą jednostkę kalendarzową osobno.
Arytmetyka dat pojawia się w wielu kontekstach programistycznych: obliczaniu czasu wygaśnięcia tokenów, planowaniu powtarzających się zdarzeń, wyznaczaniu terminów SLA lub mierzeniu czasu, który upłynął między wpisami dziennika. W przepływach pracy DevOps dotyczy okien ważności certyfikatów, czasu trwania blokad wdrożeń i długości rotacji dyżurów. Choć większość języków udostępnia biblioteki dat, kalkulator działający w przeglądarce daje natychmiastowe odpowiedzi na szybkie sprawdzenia bez pisania kodu, instalowania zależności ani otwierania REPL-a.
Dlaczego warto używać tego kalkulatora dat?
Uzyskaj natychmiastowe zestawienie czasu między dowolnymi dwiema datami, z wynikami w wielu jednostkach naraz. Bez formuł, bez kodu, bez rejestracji.
⚡
Natychmiastowe wyniki
Wybierz dwie daty i sprawdź różnicę w latach, miesiącach, tygodniach, dniach, godzinach i minutach. Wyniki aktualizują się przy zmianie dowolnej daty.
🔒
Prywatność przede wszystkim
Wszystkie obliczenia są wykonywane w przeglądarce. Żadne daty nie są przesyłane do serwera, nic nie jest przechowywane ani rejestrowane.
📅
Wiele jednostek wyjściowych
Wynik jest wyświetlany jednocześnie we wszystkich jednostkach: łączna liczba dni, tygodnie, miesiące oraz pełne rozbicie na lata, miesiące i dni. Nie trzeba samodzielnie przeliczać między jednostkami.
🔢
Bez konta
Narzędzie jest gotowe do użycia od razu. Nie wymaga logowania, subskrypcji ani nie ma limitu użycia. Dodaj do zakładek i korzystaj, kiedy potrzebujesz szybko sprawdzić datę.
Zastosowania kalkulatora dat
Programowanie front-end
Sprawdź, ile dni pozostało do daty premiery funkcji, zweryfikuj logikę licznika odliczającego czas lub przetestuj komponenty wyboru daty pod kątem oczekiwanych przedziałów.
Inżynieria back-end
Sprawdź okna wygaśnięcia tokenów, oblicz czasy TTL pamięci podręcznej lub zweryfikuj, czy interwały zaplanowanych zadań generują poprawne daty następnego uruchomienia.
DevOps i SRE
Zmierz odstęp między znacznikami czasu incydentów w analizach post-mortem, oblicz czasy wyprzedzenia dla wygaśnięcia certyfikatów lub określ czas trwania blokad wdrożeń w okresach świątecznych.
QA i testowanie
Generuj dane testowe z określonymi przesunięciami dat, weryfikuj logikę ograniczeń wiekowych obliczając dokładny wiek z daty urodzenia lub potwierdzaj poprawną obsługę warunków brzegowych dat.
Zarządzanie projektami
Oblicz długość sprintów, zmierz liczbę dni roboczych między kamieniami milowymi lub oszacuj harmonogramy dostaw, licząc dni kalendarzowe od daty startowej.
Nauka i edukacja
Policz dni do egzaminu, oblicz długość semestru lub sprawdź odpowiedzi do zadań domowych z arytmetyki dat na kursach informatyki.
Tabela jednostek czasu
Obliczenia różnicy dat obejmują jednostki o zmiennej długości. Miesiące i lata nie mają stałego czasu trwania, dlatego proste dzielenie łącznej liczby dni może dawać niedokładne wyniki. Poniższa tabela przedstawia każdą jednostkę i jej zakres:
Jednostka
Odpowiednik
Uwaga
1 year
365 or 366 days
Depends on leap year
1 month
28–31 days
Varies by month
1 week
7 days
Fixed
1 day
24 hours
Fixed (ignoring DST transitions)
1 hour
3,600 seconds
Fixed
1 minute
60 seconds
Fixed
Popularne formaty dat
Podczas programistycznej pracy z datami format decyduje o sposobie parsowania ciągu daty. Użycie złego formatu powoduje trudne do wykrycia błędy. ISO 8601 to najbezpieczniejszy wybór do wymiany danych, ponieważ jest jednoznaczny i uwzględnia strefy czasowe. Poniższa tabela przedstawia formaty, z którymi najczęściej się spotykasz:
Format
Przykład
Stosowany w
ISO 8601
2026-04-10T14:30:00Z
APIs, databases, logs
RFC 2822
Fri, 10 Apr 2026 14:30:00 +0000
Email headers, HTTP
Unix timestamp
1775831400
Epoch-based systems
US format
04/10/2026
User-facing (US locale)
European format
10.04.2026
User-facing (EU locale)
Short ISO
2026-04-10
HTML date inputs, SQL DATE
Przykłady kodu: obliczanie liczby dni między datami
Działające przykłady obliczania różnicy między dwiema datami w JavaScript, Python, Go i wierszu poleceń. Każdy fragment kodu pokazuje zarówno obliczenie łącznej liczby dni, jak i rozbicie na jednostki kalendarzowe tam, gdzie język to obsługuje.
JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85
// Get year, month, day breakdown
function dateDiff(a, b) {
let years = b.getFullYear() - a.getFullYear()
let months = b.getMonth() - a.getMonth()
let days = b.getDate() - a.getDate()
if (days < 0) {
months--
days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
}
if (months < 0) { years--; months += 12 }
return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
start = date(2026, 1, 15)
end = date(2026, 4, 10)
# Total days
diff = (end - start).days
print(diff) # → 85
# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d") # → 0y 2m 26d
# Add 90 days to a date
future = start + timedelta(days=90)
print(future) # → 2026-04-15
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85
# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15
# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15
Często zadawane pytania
Jak obliczyć liczbę dni między dwiema datami?
Odejmij wcześniejszą datę od późniejszej, aby uzyskać różnicę w milisekundach (lub natywnym typie czasu trwania danego języka), a następnie podziel przez liczbę milisekund w dobie (86 400 000). To daje łączną liczbę dni, które minęły. Aby uzyskać rozbicie na lata, miesiące i pozostałe dni, należy przechodzić przez każdą jednostkę osobno, ponieważ miesiące mają zmienną długość.
Czy różnica dat obejmuje datę startową czy końcową?
Zgodnie z konwencją różnica dat zlicza dni między obiema datami, wykluczając datę startową lub końcową. Jeśli wybierzesz 1 i 2 stycznia, wynik wyniesie 1 dzień. Jeśli Twój przypadek wymaga zliczania włącznego (z obydwoma krańcami), dodaj 1 do wyniku. To narzędzie stosuje konwencję wyłączenia końca, używaną przez większość języków programowania.
Jak lata przestępne są obsługiwane w obliczeniach dat?
Rok przestępny dodaje 29 lutego, co sprawia, że rok ma 366 dni zamiast 365. Reguła lat przestępnych kalendarza gregoriańskiego brzmi: podzielne przez 4, z wyjątkiem wieków, które muszą być również podzielne przez 400. Zatem 2024 i 2028 są latami przestępnymi, 1900 nim nie był, a 2000 był. Algorytmy obliczania różnicy dat operujące na jednostkach kalendarzowych (rok/miesiąc/dzień) obsługują to automatycznie. Algorytmy przeliczające na łączną liczbę dni muszą uwzględnić dodatkowy dzień, gdy zakres obejmuje 29 lutego.
Jaka jest różnica między dniami kalendarzowymi a roboczymi?
Dni kalendarzowe liczą każdy dzień, włącznie z weekendami i świętami. Dni robocze wykluczają soboty, niedziele i dni ustawowo wolne od pracy. To narzędzie oblicza dni kalendarzowe. Aby przeliczyć na przybliżoną liczbę dni roboczych, pomnóż łączną liczbę dni kalendarzowych przez 5/7. Dla dokładnej liczby dni roboczych potrzebny jest również kalendarz świąt dla danej jurysdykcji.
Czy mogę obliczyć datę przyszłą, dodając dni do daty startowej?
Tak. W JavaScript utwórz obiekt Date i wywołaj setDate(getDate() + n). W Pythonie dodaj timedelta(days=n) do obiektu daty. W Go użyj time.AddDate(0, 0, n). To narzędzie skupia się na różnicy między dwiema znanymi datami, ale możesz go użyć do weryfikacji obliczeń: wpisz datę startową i oczekiwaną datę wynikową, a następnie sprawdź, czy wynik w łącznej liczbie dni odpowiada dodanemu przesunięciu.
Dlaczego różne narzędzia podają różne wyniki dla liczby miesięcy między datami?
Obliczanie miesięcy jest niejednoznaczne, ponieważ miesiące mają różne długości. Rozważ przypadek od 31 stycznia do 28 lutego: czy to 1 miesiąc, czy 0 miesięcy i 28 dni? Różne biblioteki podejmują różne decyzje. Najpopularniejsza konwencja (stosowana przez dateutil w Pythonie, Period w Javie i to narzędzie) uznaje pełny miesiąc za osiągnięcie tego samego dnia miesiąca lub ostatniego prawidłowego dnia krótszego miesiąca. Zawsze sprawdzaj, której konwencji używa Twoja biblioteka, porównując wyniki.
Czy obliczanie dat jest zależne od stref czasowych?
Gdy wybierasz daty bez składnika czasu (tylko rok-miesiąc-dzień), obliczenie jest niezależne od stref czasowych, ponieważ operuje na datach kalendarzowych, a nie na konkretnych momentach w czasie. Jeśli musisz obliczyć różnicę między dwoma konkretnymi momentami (z uwzględnieniem czasu i strefy czasowej), powinieneś pracować z pełnymi znacznikami czasu ISO 8601 i przed odejmowaniem przekonwertować oba na UTC. To narzędzie operuje wyłącznie na datach kalendarzowych.