WorkDayDiff
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.
Nie ma możliwości definiowania własnych dni wolnych. W przypadku takiego wymagania należy zgłosić się do Astrafox w celu zlecenia wykonania odpłatnej modyfikacji i wprowadzenia innych dni wolnych niż standardowe albo w celu wprowadzenia dni wolnych dla innego kraju niż wymienione wyżej.
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");