Jak vypočítat pracovní týdny mezi dvěma daty (a proč je to těžší, než vypadá)
Máte dvě data a potřebujete vědět, kolik pracovních týdnů je mezi nimi. Zní to jako pětisekundový problém. Vydělte dny 7, možná odečtěte víkendy — hotovo.
Jenže to tak není, protože „pracovní týden" není přesný výraz. V závislosti na tom, co počítáte — výpovědní dobu, projektový harmonogram, nárok na dovolenou, dobu trvání smlouvy — se správná metoda liší a použití té nesprávné může vést k chybě o dny, které jsou právně nebo finančně důležité.
Co přesně je „pracovní týden"?
Pracovní týden nejčastěji znamená pět dní: pondělí až pátek. Existují však hraniční případy, které stojí za zmínku:
- Některá odvětví a země používají 6denní pracovní týden (pondělí–sobota)
- Některé role mají zkrácený 4denní pracovní týden
- Střední východ tradičně používal neděle–čtvrtek, i když většina zemí přešla na pondělí–pátek
- Pracovníci na částečný úvazek mohou mít pracovní týdny o 2, 3 nebo 4 dnech
Ve zbytku tohoto článku „pracovní týden" znamená standardní týden pondělí–pátek, pokud není uvedeno jinak. Metody lze zobecnit, jakmile znáte správné pracovní dny pro vaši situaci.
Metoda 1: Celé pracovní týdny
Nejjednodušší interpretace: kolik kompletních bloků pondělí–pátek se vejde mezi dvě data?
To je to, co většina lidí myslí, když se ptá „kolik týdnů výpovědi to je?" Čtyřtýdenní výpovědní doba znamená 4 kompletní bloky pondělí–pátek — 20 pracovních dní — bez ohledu na to, kde v týdnu začíná datum začátku.
Výpočet:
1. Spočítejte celkový počet kalendářních dní mezi dvěma daty 2. Odečtěte víkendy: každý plný 7denní blok obsahuje 2 víkendové dny 3. Zohledněte neúplné týdny na začátku a na konci
V praxi je snazší počítat pracovní dny přímo a dělit 5:
pracovní_týdny = pracovní_dny / 5
kde pracovní_dny je počet dní pondělí–pátek mezi dvěma daty.
Příklad: 7. dubna (pondělí) do 2. května (pátek)
- Kalendářní dny: 25
- Víkendy v rozsahu: 4 soboty + 4 neděle = 8 dní
- Pracovní dny: 25 − 8 = 17... počkejte, to není správně.
Správný způsob: počítejte pondělí až pátek včetně:
- Týden 1: 7.–11. dubna (5 dní)
- Týden 2: 14.–18. dubna (5 dní)
- Týden 3: 21.–25. dubna (5 dní)
- Týden 4: 28. dubna–2. května (5 dní)
Celkem: 20 pracovních dní = přesně 4 pracovní týdny.
Protože příklad začíná v pondělí a končí v pátek, výsledek je čistý. Začátek nebo konec uprostřed týdne vede k zlomkovému výsledku, což nás přivádí k další metodě.
Metoda 2: Pracovní dny děleno 5
Pro většinu praktických účelů — plánování projektů, odhady harmonogramů, výpočty kapacity — nepotřebujete celé týdny. Potřebujete pracovní dny a výsledek vyjádříte jako týdny a dny.
Vzorec:
celkem_pracovních_dní = (celé_týdny × 5) + pracovní_dny_v_neúplném_týdnu
týdny = floor(celkem_pracovních_dní / 5)
zbývající_dny = celkem_pracovních_dní mod 5
Příklad: 18. března (středa) do 11. dubna (pátek)
Počet pracovních dní:
- 18. 3. (středa) do 21. 3. (pátek): 4 dny
- 24.–28. 3.: 5 dní
- 31. 3.–4. 4.: 5 dní
- 7.–11. 4.: 5 dní
Celkem: 19 pracovních dní = 3 týdny a 4 dny.
Tato metoda je vhodná pro projektové harmonogramy, kde pracujete s kapacitou ve dnech, ne v kalendářních týdnech.
Metoda 3: Rozsah ISO týdnů
Někdy „kolik týdnů mezi" znamená: jaký je rozdíl v číslech ISO týdnů?
Příklad: Událost probíhá od ISO týdne 10 do ISO týdne 23. To je 13 ISO týdnů trvání.
Výpočet:
rozsah_týdnů = (koncový_iso_rok × 52,18) + koncový_iso_týden − (počáteční_iso_rok × 52,18) + počáteční_iso_týden
V praxi pro data ve stejném roce:
rozsah_týdnů = koncový_iso_týden − počáteční_iso_týden
Pro data překračující hranici roku je třeba zohlednit, zda počáteční rok měl 52 nebo 53 týdnů:
rozsah_týdnů = (52_nebo_53_pro_počáteční_rok − počáteční_iso_týden) + koncový_iso_týden
Tato metoda je relevantní pro plánování vysílání, maloobchodní plánování a jakýkoli systém, který organizuje práci podle čísla ISO týdne, nikoli podle pracovních dní.
Problém inkluzivity dat
Jeden z nejčastějších zdrojů chyb: zda počítat datum začátku, datum konce, obojí nebo ani jedno.
„4týdenní výpovědní doba začínající dnes" by mohla znamenat:
- 4 týdny od dneška, kde dnes je den 1 (inkluzivní začátek): období končí ve stejný den v týdnu, o 4 týdny později
- 4 týdny po dnešku (exkluzivní začátek): období končí o jeden den později než výše
Pracovní právo ve většině zemí to výslovně specifikuje. Britské pracovní právo počítá výpovědní dobu ode dne po podání výpovědi. V USA se liší podle smlouvy.
Rozdíl je jeden den. Ve většině případů to nevadí. V pracovněprávních sporech nebo při ukončení smlouvy to může hrát roli.
Bezpečná konvence: vždy uveďte „X pracovních týdnů od [datum], včetně/bez." Nenechávejte to nejednoznačné.
Státní svátky: výpočet, na který každý zapomene
Výpočty pracovních týdnů, které nezohledňují státní svátky, jsou ze své podstaty chybné — přepočítají dostupný pracovní čas.
Problém: státní svátky nejsou standardizované. Liší se podle:
- Země (Vánoce jsou 25. prosince ve Velké Británii; v Japonsku to není státní svátek)
- Regionu v rámci země (americké státy mají různé svátky; Anglie a Skotsko mají různé bankovní svátky)
- Roku (pohyblivé svátky jako Velikonoce mění datum každý rok)
- Pracovní smlouvy (některá zaměstnání mají další svátky; někteří pracovníci veřejného sektoru dodržují různá data)
Pro hrubé odhady — „to je asi 6 pracovních týdnů" — je ignorování svátků v pořádku. Pro přesné výpočty — smluvní termíny, výpovědní doby, právní lhůty — musíte odečíst příslušné státní svátky.
Žádná kalkulačka to za vás automaticky neudělá bez znalosti vaší jurisdikce a konkrétního roku. Kalkulačka dní mezi daty vám dá počet pracovních dní bez víkendů; státní svátky odečtete ručně.
Užitečný odhad pro Velkou Británii: ročně je přibližně 8 bankovních svátků, zhruba 1,6 za měsíc. Pro tříměsíční výpočet je to přibližně 5 svátků k odečtení. Pro federální svátky USA: 11 ročně, zhruba 0,9 za měsíc.
Výpovědní doby: jak matematika skutečně funguje
Pracovní smlouvy uvádějí výpovědní doby v týdnech nebo měsících. Převod na pracovní dny je místo, kde nejčastěji dochází k chybám.
„4týdenní výpověď" znamená 4 kalendářní týdny (28 dní), nikoli 4 × 5 = 20 pracovních dní. Pokud je výpověď dána v úterý, trvá 28 kalendářních dní — což zahrnuje víkendy. Poslední den výpovědní doby je úterý o 4 týdny později.
To lidi překvapuje, protože očekávají, že „4 týdny" znamená 20 pracovních dní. Neznamená — znamená 28 kalendářních dní a víkendy v tomto období se stále počítají jako výpovědní doba, i když v nich nepracujete.
„Měsíční výpověď" je ještě méně přesná. Měsíc od 15. ledna je 15. února. Měsíc od 31. ledna je 28. února (nebo 29. v přestupném roce). Počet kalendářních dní se liší od 28 do 31. Počet pracovních dní v tomto měsíci se liší od 20 do 23.
Pracovní týdny vs kalendářní týdny ve smlouvách:
Pokud smlouva říká „4 pracovní týdny výpovědi", znamená to 20 pracovních dní — pouze pondělí až pátek. Víkendy se nepočítají. V takovém případě výpověď začínající v úterý bude trvat 20 pracovních dní a skončí o několik kalendářních týdnů později v závislosti na tom, kolik víkendů spadá do tohoto období.
Vždy zkontrolujte, zda vaše smlouva říká „týdny" nebo „pracovní týdny". Rozdíl může být 8–10 dní v typické výpovědní době.
Projektové harmonogramy: týdny úsilí vs kalendářní týdny
V projektovém řízení „3 týdny práce" a „3 kalendářní týdny" nejsou totéž.
3 týdny úsilí při plné kapacitě = 15 člověkopracovních dní. Pokud je úkol 3 týdny práce pro jednoho člověka pracujícího na plný úvazek, trvá 3 kalendářní týdny. Pokud ho sdílejí dva lidé, trvá 1,5 kalendářního týdne. Pokud jeden člověk pracuje na 50% kapacitu, trvá 6 kalendářních týdnů.
3 kalendářní týdny = 15 pracovních dní za předpokladu, že nejsou svátky, nikdo není na částečný úvazek a neexistuje žádná ztráta přepínáním kontextu.
Rozlišení je důležité při plánování termínů dodání. Pokud sdělíte zainteresované straně, že funkce bude trvat „3 týdny" a myslíte tím pracovní týdny při 80% kapacitě s bankovním svátkem uprostřed, datum konce v kalendáři je zcela jiné, než si představují.
Při uvádění harmonogramů:
- Uvádějte pracovní dny, nikoli týdny, pro úkoly kratší než měsíc
- Uveďte datum konce v kalendáři jako kontrolu
- Výslovně poznamenejte jakékoli svátky v daném okně
Výpočet pracovních týdnů v kódu
Python:
from datetime import date, timedelta
def working_days(start: date, end: date) -> int:
total = 0
current = start
while current <= end:
if current.weekday() < 5: # 0=Po, 4=Pá
total += 1
current += timedelta(days=1)
return total
def working_weeks(start: date, end: date) -> float:
return working_days(start, end) / 5
# Příklad
start = date(2026, 4, 7)
end = date(2026, 5, 2)
print(working_days(start, end)) # 20
print(working_weeks(start, end)) # 4.0
Pro velké rozsahy dat je rychlejší přístup použití modulární aritmetiky, aby se zabránilo smyčkování:
def working_days_fast(start: date, end: date) -> int:
days = (end - start).days + 1
full_weeks, remainder = divmod(days, 7)
working = full_weeks * 5
# Počítejte pracovní dny v neúplném týdnu
start_dow = start.weekday() # 0=Po
for i in range(remainder):
if (start_dow + i) % 7 < 5:
working += 1
return working
JavaScript:
function workingDays(start, end) {
let count = 0
const current = new Date(start)
while (current <= end) {
const day = current.getDay()
if (day !== 0 && day !== 6) count++ // 0=Ne, 6=So
current.setDate(current.getDate() + 1)
}
return count
}
function workingWeeks(start, end) {
return workingDays(start, end) / 5
}
SQL (PostgreSQL):
-- Pracovní dny mezi dvěma daty (bez víkendů)
SELECT
(EXTRACT(DOW FROM end_date) - EXTRACT(DOW FROM start_date))::int +
((end_date - start_date) / 7) * 5 +
CASE WHEN EXTRACT(DOW FROM start_date) = 0 THEN 1 ELSE 0 END +
CASE WHEN EXTRACT(DOW FROM end_date) = 6 THEN -1 ELSE 0 END
AS working_days
FROM (SELECT DATE '2026-04-07' AS start_date, DATE '2026-05-02' AS end_date) t;
Rychlá reference
| Co potřebujete | Metoda |
|---|---|
| Délka výpovědní doby | Kalendářní dny (víkendy se počítají) |
| Projektová pracovní kapacita | Pracovní dny (po–pá), děleno 5 pro týdny |
| Plánování vysílání/maloobchodu | Rozsah ISO týdnů |
| Nárok na dovolenou | Pracovní dny, odečtěte státní svátky |
| Smluvní termíny | Kalendářní dny, pokud smlouva neříká „pracovní dny" |
Kalkulačka dní mezi daty zobrazuje jak kalendářní dny, tak pracovní dny pro jakýkoli rozsah dat — užitečný výchozí bod před úpravou o státní svátky ve vaší jurisdikci.


