WorkDayDiff

Ostatnia modyfikacja Wrzesień 11, 2017

Zastosowanie

Funkcja zwraca liczbę dni roboczych pomiędzy datami z uwzględnieniem dat końcowych. Uwzględnia również wszystkie dni wolne w tym święta stałe jak i ruchome dla regionów: Polski, Węgier i Czech.

Składnia

WorkDayDiff("firstDate", "lastDate", "saturdaysFree", "region");
WorkDayDiff("firstDate", "lastDate", "saturdaysFree", "sundaysFree", "region");

Argumenty

  • firstDate– (DateTime) Data początkowa
  • lastDate – (DateTime) Data końcowa
  • saturdaysFree – (Boolean) Wskazuje czy soboty mają być traktowane jako dni wolne od pracy.
  • sundaysFree – (Boolean) [Opcjonalny] Wskazuje czy niedziele mają być traktowane jako dni wolne od pracy (domyślnie – false)
  • region – (String)  Symbol regionu dla którego używamy funkcji (domyślnie – Polska). Dopuszczalne wartości :[PL | HU | CZ ].

Zwracana wartość

Funkcja zwraca wartość numeryczną.

Zwracana wartość odpowiada liczbie dni pracujących pomiędzy wskazanymi datami.

Elementy powiązane

Przykłady

Przykład 1

workDayCount = WorkDayDiff([DateFrom],[DateTo],true,"PL");

Pobiera wartość z pól [DateFrom] oraz [DateTo], uwzględnia soboty jako dni wolne oraz region Polski.

Warianty dla różnych dat.

  • [DateFrom] = „2016-03-21”   (poniedziałek), [DateTo] = „2016-03-25”  (piątek) , liczba dni pracujących 5
  • [DateFrom] = „2016-03-21”   (poniedziałek), [DateTo] = „2016-03-21”  (poniedziałek) , liczba dni pracujących 1
  • [DateFrom] = „2016-03-20”   (niedziela), [DateTo] = „2016-03-20”  (niedziela) , liczba dni pracujących 0
  • [DateFrom] = „2016-03-18”   (piątek), [DateTo] = „2016-03-21”  (poniedziałek) , liczba dni pracujących 2
  • [DateFrom] = „2016-04-30”   (piątek), [DateTo] = „2016-05-06”  (piątek) , liczba dni pracujących 5 (wolna sobota, niedziela oraz 3 maja (wtorek)
  • [DateFrom] = „2016-03-25”   (piątek), [DateTo] = „2016-04-01”  (piątek) , liczba dni pracujących 5 (wolna sobota, niedziela oraz poniedziałek Wielkanocny)

 

Przykład 2

Obliczenie liczby dni roboczych w bieżącym miesiącu.

/* W tym celu wyznaczamy pierwszy i ostatni dzień bieżącego miesiąca. */
/* pierwszy dzień bieżącego miesiąca */
firstDay = DateTime(DatePart("year",Today()),DatePart("month",Today()),1);
/* ostatni dzień bieżącego miesiąca */
/* w tym celu ustalamy pierwszy dzień następnego miesiąca  */
nextMonth = DateAdd("month", firstDay, 1);
/* i odejmujemy 1 dzień */
lastDay = DateAdd("day", nextMonth, -1)
/* obliczamy liczbę dni roboczych bieżącego miesiąca */
workDays = WorkDayDiff(firstDay, lastDay, true, "PL");