# networkdays funkcja skryptu i funkcja wykresu

Funkcja networkdays zwraca liczbę dni roboczych (poniedziałek–piątek) od start\_date do end\_date włącznie z uwzględnieniem opcjonalnych dni wolnych (holiday).

Składnia:

networkdays (start\_date, end\_date [, holiday])

Typ zwracanych danych: liczba całkowita

Diagram kalendarza przedstawiający zakres dat zwracany przez funkcję networkdays

Diagram kalendarza przedstawiający zakres dat zwracany przez funkcję networkdays

Diagram kalendarza przedstawiający zakres dat zwracany przez funkcję networkdays ![DODAĆ TEKST ATRYBUTU ALT.....!!!!!!](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-general-calendar.png)

Funkcja `networkdays` ma następujące ograniczenia:

* Nie ma sposobu na zmodyfikowanie dni roboczych. Innymi słowy, nie da się zmodyfikować funkcji pod kątem regionów lub sytuacji obejmujących cokolwiek innego niż dni robocze od poniedziałku do piątku.

* Parametr `holiday` musi być stałą łańcuchową. Wyrażenia nie są akceptowane.

Argumenty

| Argument | Opis |
| --- | --- |
| start\_date | Data rozpoczęcia do oceny. |
| end\_date | Data zakończenia do oceny. |
| holiday | Okresy wolne od pracy wyłączane z dni roboczych. Dzień wolny jest określany jako data stała w formie ciągu. Można określić większą liczbę dat dni wolnych, rozdzielając je przecinkami.<br><br>Przykład: `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## Kiedy używać networkdays

Funkcja `networkdays()` jest używana jako część wyrażenia, gdy użytkownik chce, aby w obliczeniach użyto liczbę dni roboczych między dwiema datami. Można jej użyć na przykład do obliczenia sumy zarobków pracownika zatrudnionego na zasadach PAYE (pay-as-you-earn).

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `networkdays ('12/19/2013', '01/07/2014')` | Zwraca wartość 14 W tym przykładzie okresy wolne od pracy nie są uwzględnione. |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013')` | Zwraca wartość 12 W tym przykładzie uwzględniony jest okres wolny od pracy od 12/25/2013 do 12/26/2013. |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014')` | Zwraca wartość 10 W tym przykładzie uwzględnione są dwa okresy wolne od pracy. |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/YYYY. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów. Więcej informacji można znaleźć w temacie [Modyfikowanie ustawień regionalnych na potrzeby aplikacji i skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Domyślne ustawienia regionalne w aplikacjach są oparte na profilu użytkownika. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Cloud. Interfejs Qlik Cloud będzie wyświetlany w tym samym języku co używana przeglądarka.

Jeżeli jesteś twórcą aplikacji, możesz wybrać domyślny region dla tworzonych przez siebie aplikacji. Więcej informacji zawiera temat [Ustawianie preferowanych ustawień regionalnych do tworzenia aplikacji i skryptów w Analityka Qlik Cloud](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Przykład 1 — Przykład podstawowy

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający identyfikatory projektów oraz ich daty rozpoczęcia i zakończenia. Te informacje są ładowane do tabeli o nazwie `Projects`.

* Pole danych w formacie `DateFormat` zmiennej systemowej (MM/DD/RRRR).

* Utworzenie dodatkowego pola, `net_work_days`, aby obliczyć liczbę dni roboczych objętych przez każdy projekt.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
    Load
        *,
        networkdays(start_date,end_date) as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabela wynikowa

| id | start\_date | end\_date | netto\_dni\_robocze |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 13 |

Ponieważ nie ma zaplanowanych dni wolnych (byłyby określone w trzecim argumencie funkcji `networkdays()`), funkcja oblicza liczbę dni roboczych między dwiema datami przez odjęcie `start_date` od `end_date`.

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (brak dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (brak dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (brak dni wolnych) ![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem sobót i niedziel.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-basic.png)

Powyższy kalendarz wizualnie zaznacza projekt o `id` 5. Projekt 5 zaczyna się w środę 10 sierpnia 2022 r. i kończy 26 sierpnia 2022 r. Po odjęciu wszystkich sobót i niedziel między tymi dwiema datami włącznie pozostaje 13 dni roboczych.

## Przykład 2 – jeden dzień wolny

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w poprzednim przykładzie.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/YYYY).

* Utworzenie dodatkowego pola, `net_work_days`, aby obliczyć liczbę dni roboczych objętych przez każdy projekt.

W tym przykładzie występuje jeden dzień wolny przypadający 19 sierpnia 2022 r.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/19/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabela wynikowa

| id | start\_date | end\_date | netto\_dni\_robocze |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 12 |

Dzień świąteczny został wprowadzony jako trzeci argument do funkcji `networkdays()`.

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (jeden dzień wolny)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (jeden dzień wolny)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (jeden dzień wolny) ![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem 19 sierpnia 2022 r (święta).](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-single-holiday.png)

Powyższy kalendarz wizualnie pokazuje ramy projektu 5, demonstrując korektę uwzględniającą dzień świąteczny. Ten dzień wypada w trakcie trwania projektu 5 w piątek 19 sierpnia 2022 r. W efekcie całkowita wartość `net_work_days` dla projektu 5 zostaje zmniejszona o jeden dzień, czyli z 13 do 12 dni.

## Przykład 3 – kilka dni świątecznych

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/YYYY).

* Utworzenie dodatkowego pola, `net_work_days`, aby obliczyć liczbę dni roboczych objętych przez każdy projekt.

Jednak w tym przykładzie są cztery dni robocze zaplanowane między 18 a 21 sierpnia 2022 r.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/18/2022','08/19/2022','08/20/2022','08/21/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabela wynikowa

| id | start\_date | end\_date | netto\_dni\_robocze |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 11 |

Cztery zaplanowane dni wolne zostały wpisane jako lista elementów rozdzielanych przecinkami, od trzeciego argumentu w funkcji `networkdays()`.

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (kilka dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (kilka dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (kilka dni wolnych) ![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem 18 i 19 sierpnia 2022 r (święta).](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-multiple-holidays.png)

Powyższy kalendarz wizualnie pokazuje ramy projektu 5, demonstrując korektę uwzględniającą te dni świąteczne. Okres zaplanowanych dni wolnych przypada w trakcie trwania projektu 5, z czego dwa z tych dni wypadają w czwartek i piątek. W efekcie całkowita wartość `net_work_days` dla projektu 5 zostaje zmniejszona z 13 do 11 dni.

## Przykład 4 – jeden dzień wolny

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.

* Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).

Jest jeden dzień wolny przypadający 19 sierpnia 2022 r.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Pole net\_work\_days jest obliczane jako miara w obiekcie wykresu.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* id

* start\_date

* end\_date

Utwórz następującą miarę:

= networkdays(start\_date,end\_date,’08/19/2022’)

Tabela wynikowa

| id | start\_date | end\_date | netto\_dni\_robocze |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 12 |

Dzień świąteczny został wprowadzony jako trzeci argument do funkcji networkdays().

Diagram kalendarza pokazujący dni robocze netto z jednym dniem wolnym (obiekt wykresu)

Diagram kalendarza pokazujący dni robocze netto z jednym dniem wolnym (obiekt wykresu)

Diagram kalendarza pokazujący dni robocze netto z jednym dniem wolnym (obiekt wykresu) ![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem 19 sierpnia 2022 r (święta).](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-chart-single-holiday.png)

Powyższy kalendarz wizualnie pokazuje ramy projektu 5, demonstrując korektę uwzględniającą dzień świąteczny. Ten dzień wypada w trakcie trwania projektu 5 w piątek 19 sierpnia 2022 r. W efekcie całkowita wartość net\_work\_days dla projektu 5 zostaje zmniejszona o jeden dzień, czyli z 13 do 12 dni.