ToolDeck

Date Calculator

Vypočítejte rozdíl mezi dvěma daty v letech, měsících, dnech a dalších jednotkách

Co je výpočet dat?

Výpočet dat je proces zjišťování rozdílu mezi dvěma kalendářními daty nebo přičítání a odečítání časového úseku od zadaného data. Online kalkulačka dat vám umožní zjistit přesný počet dní, týdnů, měsíců a let mezi libovolnými dvěma daty bez ručního počítání. Uplatňuje se při plánování projektů, smluvním právu, finančním účetnictví i vývoji softwaru.

Složitost výpočtu dat pramení z nepravidelné struktury gregoriánského kalendáře. Měsíce mají 28, 29, 30 nebo 31 dní. Rok má 365 nebo 366 dní podle pravidel přestupných let. Prosté odečtení čísel dní dává chybné výsledky, pokud data leží v různých měsících nebo rocích. Správné algoritmy pro výpočet rozdílu dat musí tuto nepravidelnost zohledňovat tím, že procházejí každou kalendářní jednotku zvlášť.

Datová aritmetika se vyskytuje v mnoha programovacích kontextech: výpočet expirace tokenů, plánování opakujících se událostí, výpočet termínů SLA nebo měření uplynutého času mezi záznamy v logu. V pracovních postupech DevOps se to projeví jako okna platnosti certifikátů, délka zmrazení nasazení a délka rotace pohotovostních směn. Přestože většina programovacích jazyků poskytuje knihovny pro práci s datem, kalkulačka v prohlížeči dává okamžité odpovědi na rychlé kontroly bez psaní kódu, instalace závislostí nebo otevírání REPL.

Proč použít tuto kalkulačku dat?

Získejte okamžitý přehled o čase mezi libovolnými dvěma daty ve více jednotkách najednou. Bez vzorců, bez kódu, bez registrace.

Okamžité výsledky
Zvolte dvě data a ihned uvidíte rozdíl v letech, měsících, týdnech, dnech, hodinách a minutách. Výsledky se aktualizují při každé změně data.
🔒
Důraz na soukromí
Všechny výpočty probíhají ve vašem prohlížeči. Žádná data nejsou odesílána na server, nic se neukládá ani nezaznamenává.
📅
Více výstupních jednotek
Výsledek vidíte ve všech jednotkách najednou: celkový počet dní, týdny, měsíce a úplný rozklad na roky, měsíce a dny. Není třeba ručně převádět mezi jednotkami.
🔢
Bez nutnosti účtu
Nástroj použijete okamžitě. Není třeba se přihlašovat, předplácet ani dodržovat žádné limity. Uložte si záložku a použijte ho kdykoli potřebujete rychlou kontrolu data.

Případy použití kalkulačky dat

Frontend vývoj
Ověřte, kolik dní zbývá do spuštění funkce, zkontrolujte logiku odpočítávání nebo otestujte komponenty výběru data oproti očekávaným intervalům.
Backend vývoj
Ověřte okna expirace tokenů, vypočítejte doby TTL mezipaměti nebo zkontrolujte, zda intervaly naplánovaných úloh dávají správná data příštího spuštění.
DevOps a SRE
Změřte časové rozdíly mezi timestamps incidentů v post-mortem analýzách, vypočítejte předstih expirace certifikátů nebo určete délku zmrazení nasazení během svátků.
QA a testování
Generujte testovací data s konkrétními datovými posuny, ověřte logiku věkového ověření výpočtem přesného věku z data narození nebo potvrďte, že hraniční podmínky pro data jsou zpracovány správně.
Projektové řízení
Vypočítejte délku sprintů, změřte počet pracovních dní mezi milníky nebo odhadněte termíny dodání počítáním kalendářních dní od počátečního data.
Studenti a vzdělávání
Spočítejte dny do zkoušky, vypočítejte délku semestru nebo ověřte domácí úkoly z datové aritmetiky v kurzech informatiky.

Přehled jednotek délky trvání

Výpočty rozdílu dat pracují s jednotkami proměnlivé délky. Měsíce a roky nejsou pevné časové úseky, proto prosté dělení celkového počtu dní může dávat nepřesné výsledky. Tabulka níže uvádí každou jednotku a její rozsah:

JednotkaEkvivalentPoznámka
1 year365 or 366 daysDepends on leap year
1 month28–31 daysVaries by month
1 week7 daysFixed
1 day24 hoursFixed (ignoring DST transitions)
1 hour3,600 secondsFixed
1 minute60 secondsFixed

Běžné formáty data

Při programatické práci s daty určuje formát způsob, jakým je datový řetězec interpretován. Použití nesprávného formátu způsobuje skryté chyby. ISO 8601 je nejbezpečnější volbou pro výměnu dat, protože je jednoznačný a podporuje informace o časovém pásmu. Tabulka níže uvádí nejčastěji používané formáty:

FormátPříkladPoužití
ISO 86012026-04-10T14:30:00ZAPIs, databases, logs
RFC 2822Fri, 10 Apr 2026 14:30:00 +0000Email headers, HTTP
Unix timestamp1775831400Epoch-based systems
US format04/10/2026User-facing (US locale)
European format10.04.2026User-facing (EU locale)
Short ISO2026-04-10HTML date inputs, SQL DATE

Ukázky kódu: výpočet počtu dní mezi daty

Funkční ukázky výpočtu rozdílu mezi dvěma daty v JavaScriptu, Pythonu, Go a na příkazovém řádku. Každá ukázka zobrazuje výpočet celkového počtu dní i rozklad na kalendářní jednotky tam, kde to daný jazyk podporuje.

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
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	start := time.Date(2026, 1, 15, 0, 0, 0, 0, time.UTC)
	end := time.Date(2026, 4, 10, 0, 0, 0, 0, time.UTC)

	// Total duration
	diff := end.Sub(start)
	days := int(diff.Hours() / 24)
	fmt.Println(days) // → 85

	// Add 90 days
	future := start.AddDate(0, 0, 90)
	fmt.Println(future.Format("2006-01-02")) // → 2026-04-15
}
CLI (GNU date / macOS)
# 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

Nejčastější dotazy

Jak vypočítat počet dní mezi dvěma daty?
Odečtěte dřívější datum od pozdějšího a získáte rozdíl v milisekundách (nebo v nativním datovém typu vašeho jazyka), poté vydělte počtem milisekund v jednom dni (86 400 000). Výsledkem je celkový počet uplynulých dní. Pro rozklad na roky, měsíce a zbývající dny je třeba procházet každou jednotku zvlášť, protože měsíce mají různé délky.
Počítá se do rozdílu dat počáteční nebo koncové datum?
Dle konvence se počítají dny mezi dvěma daty s vyloučením počátečního nebo koncového data. Zvolíte-li 1. ledna a 2. ledna, výsledek je 1 den. Pokud váš případ použití vyžaduje inkluzivní počítání (jsou zahrnuty oba krajní body), přičtěte k výsledku 1. Tento nástroj dodržuje konvenci s vyloučením koncového data, kterou používá většina programovacích jazyků.
Jak jsou přestupné roky zohledněny ve výpočtech dat?
Přestupný rok přidává 29. únor, čímž rok má 366 dní místo 365. Gregoriánské pravidlo přestupného roku je: rok dělitelný 4, s výjimkou celých století, která musí být také dělitelná 400. Roky 2024 a 2028 jsou tedy přestupné, rok 1900 nebyl, rok 2000 byl. Algoritmy pro výpočet rozdílu dat pracující s kalendářními jednotkami (rok/měsíc/den) toto řeší automaticky. Algoritmy převádějící na celkový počet dní musí zohlednit navíc přidaný den, pokud rozsah zahrnuje 29. únor.
Jaký je rozdíl mezi kalendářními a pracovními dny?
Kalendářní dny počítají každý den včetně víkendů a svátků. Pracovní dny vylučují soboty, neděle a státní svátky. Tento nástroj počítá kalendářní dny. Pro přibližný převod na pracovní dny vynásobte celkový počet kalendářních dní hodnotou 5/7. Pro přesný počet pracovních dní potřebujete také sváteční kalendář příslušné jurisdikce.
Lze vypočítat budoucí datum přičtením dní k počátečnímu datu?
Ano. V JavaScriptu vytvořte objekt Date a zavolejte setDate(getDate() + n). V Pythonu přičtěte k objektu date hodnotu timedelta(days=n). V Go použijte time.AddDate(0, 0, n). Tento nástroj se zaměřuje na rozdíl mezi dvěma známými daty, ale lze ho použít k ověření aritmetiky: zadejte počáteční datum a očekávané výsledné datum a potvrďte, že výstup celkového počtu dní odpovídá přidanému posunu.
Proč různé nástroje dávají různé výsledky pro počet měsíců mezi daty?
Výpočet měsíců je nejednoznačný, protože měsíce mají různé délky. Zvažte příklad 31. ledna až 28. února: je to 1 měsíc nebo 0 měsíců a 28 dní? Různé knihovny se rozhodují různě. Nejběžnější konvence (používaná Pythonovým dateutil, Javovým Period a tímto nástrojem) počítá celý měsíc jako dosažení stejného dne v měsíci nebo posledního platného dne kratšího měsíce. Vždy ověřte, jakou konvenci vaše knihovna používá při porovnávání výsledků.
Ovlivňují časová pásma výpočet dat?
Pokud zvolíte data bez časové složky (pouze rok-měsíc-den), je výpočet nezávislý na časovém pásmu, protože pracuje s kalendářními daty, nikoli s konkrétními okamžiky v čase. Potřebujete-li vypočítat rozdíl mezi dvěma konkrétními okamžiky (včetně času a časového pásma), měli byste pracovat s úplnými timestamps ISO 8601 a před odečtením oba převést na UTC. Tento nástroj pracuje pouze s kalendářními daty.