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řebujeteMetoda
Délka výpovědní dobyKalendářní dny (víkendy se počítají)
Projektová pracovní kapacitaPracovní dny (po–pá), děleno 5 pro týdny
Plánování vysílání/maloobchoduRozsah ISO týdnů
Nárok na dovolenouPracovní dny, odečtěte státní svátky
Smluvní termínyKalendář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.

Související články