Autor: Martin Bradáč

Vypočítat rozdíl dvou kalendářních dní není žádný problém. Nejen v pracovním prostředí ale často potřebujeme zjistit, kolik pracovních dní je mezi dvěma dny. Power Automate bohužel nedisponuje žádnou funkcí jako Excel, musíme si tedy poradit sami. K eleganci má moje řešení trochu daleko, ale funguje.

Příkladem budiž formulář pro žádost o dovolenou. Vstupem je datum Od a Do. Potřebujeme zjistit, kolik pracovních dní se bude dovolená skutečně čerpat.

Nejde jen o víkendy, ale i o svátky.

Neobejdeme se bez proměnných.


Definujeme tedy proměnnou „seznamSvatku“ typ řetězec. Přímo v inicializaci můžeme vložit hodnoty oddělené čárkou. Bylo by také možné vytvořit textový soubor, kde by svátky byly vypsané.

Dále budeme potřebovat dvě textové proměnné „pomocnyDen“ a „pomomocnyDen2“. Oběma vložíme hodnotu z dynamického obsahu vstupního formuláře – Od. Ty využijeme v cyklu. Dvě proto, že PowerAutomate nezvládne provádět triviální operace známé z jiných prostředí – a=a+1.

Poslední proměnnou bude „pocetDni“ a bude typu Integer.

Tok spustíme na základě odeslaného formuláře a získáme odpovědi.


Nyní ale přijde na řadu cyklus Do until… s podmínkou, „pomocnyDen“ se shoduje s adddays(„Do“,1). Cyklus zajistí, že proběhne tolikrát, kolik je dní v intervalu Od Do.

Do cyklu vložíme podmínku IF „seznamSvatku“ obsahuje „pomocnyDen“.

Pokud Ano, neprovede se žádná akce – není třeba, je to svátek a ten nepočítáme.

Pokud Ne, zapne se další podmínka, která zjistí, jestli je zadaný den víkendem. Pokud ano, opět nic nepočítáme. Pokud Ne, zvýšíme hodnotu proměnné „pocetDni“ o 1.

Dále zvedneme hodnotu „pomDat2“ pomocí funkce addDays o 1

Po skončení cyklu se napočítá tolik pracovních dní, kolik jich cyklus nenajde v tabulce svátků nebo nejsou víkendem.

Nevýhoda řešení je jasná – je třeba ručně nastavit tabulku svátků. Tu lze ale uložit do souboru a průběžně aktualizovat.

Pokračování řešení nechám na vašich úvahách, ale nabízí se uložení do seznamu, schvalování, upozornění, záznam do kalendáře a podobně…