# weekend funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia tygodnia kalendarzowego, który zawiera wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.

Składnia:

WeekEnd(timestamp [, period\_no [, first\_week\_day ]])

Typ zwracanych danych: wartość podwójna

Funkcja `weekend()` określa, w którym tygodniu wypada data. Następnie zwraca znacznik czasu w formacie daty dla ostatniej milisekundy tego tygodnia. Pierwszy dzień tygodnia jest określany przez zmienną systemową `FirstWeekDay`. Można ją jednak zastąpić argumentem `first_week_day` funkcji `weekend()`.

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data lub znacznik czasu do oszacowania. |
| period\_no | shift jest liczbą całkowitą, gdzie 0 oznacza tydzień, który zawiera datę date. Wartości ujemne parametru shift oznaczają poprzednie tygodnie, a wartości dodatnie — tygodnie następne. |
| first\_week\_day | Określa dzień początku tygodnia. Jeśli ten argument zostanie pominięty, wówczas zostanie użyta wartość zmiennej FirstWeekDay.<br><br>Możliwe wartości argumentu first\_week\_day to poniedziałek — 0, wtorek — 1, środa — 2, czwartek — 3, piątek — 4, sobota — 5 oraz niedziela — 6.<br><br>Aby uzyskać więcej informacji o tej zmiennej systemowej, zobacz [FirstWeekDay](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) |

## Kiedy używać weekend

Funkcja `weekend()` jest używana jako część wyrażenia, gdy użytkownik chce, aby w obliczeniach użyto liczby pozostałych dni tygodnia dla określonej daty. Na przykład, można jej użyć, jeśli użytkownik chce obliczyć sumę odsetek, które nie zostały jeszcze naliczone w ciągu tygodnia.

W poniższych przykładach zakłada się:

```
SET FirstWeekDay=0;
```

| Przykład | Wynik |
| --- | --- |
| `weekend('01/10/2013')` | Zwraca wartość 01/12/2013 23:59:59. |
| `weekend('01/10/2013', -1)` | Zwraca wartość 01/05/2013 23:59:59.. |
| `weekend('01/10/2013', 0, 1)` | Zwraca wartość 01/14/2013 23:59:59. |

## 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łady:

Jeśli chcesz używać ustawień ISO dla tygodni i numerów tygodni, w skrypcie muszą się znajdować następujące elementy:

```
Set DateFormat   ='YYYY-MM-DD'; 
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    //(use unbroken weeks)
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

Jeśli chcesz używać ustawień amerykańskich, w skrypcie muszą się znajdować następujące elementy:

```
Set DateFormat   ='M/D/YYYY';
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    //(use broken weeks)
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

Powyższe przykłady dają następujące wyniki z funkcji weekend():

Przykład funkcji Weekend

| Data | Koniec tygodnia według ISO | Koniec tygodnia w USA |
| --- | --- | --- |
| Sob 2020 Gru 26 | 2020-12-27 | 12/26/2020 |
| Niedz 2020 Gru 27 | 2020-12-27 | 2.01.2021 |
| Pon 2020 Gru 28 | 03.01.2021 | 2.01.2021 |
| Wt 2020 Gru 29 | 03.01.2021 | 2.01.2021 |
| Śr 30 Gru 2020 | 03.01.2021 | 2.01.2021 |
| Czw 31 Gru 2020 | 03.01.2021 | 02.01.2021 |
| Pt 1 sty 2021 | 03.01.2021 | 02.01.2021 |
| Sob. 2 sty. 2021 | 03.01.2021 | 2.01.2021 |
| Niedz. 3 sty 2021 | 03.01.2021 | 9.01.2021 |
| pon. 4 sty 2021 | 2021-01-10 | 9.01.2021 |
| Wt 5 sty 2021 | 2021-01-10 | 9.01.2021 |

InformacjaTygodnie kończą się w niedziele w kolumnie ISO, a w soboty w kolumnie US.

## Przykład 1 — Przykład podstawowy

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekend.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 zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie „Transactions”.

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

* Utworzenie pola end\_of\_week zwracającego znacznik czasu końca tygodnia, w którym miały miejsce transakcje.

Skrypt ładowania

```
SET FirstWeekDay=6;

Transactions:
    Load
        *,
        weekend(date) as end_of_week,
        timestamp(weekend(date)) as end_of_week_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

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

* date

* end\_of\_week

* end\_of\_week\_timestamp

Tabela wynikowa

| date | koniec\_tygodnia | koniec\_tygodnia\_znacznik\_czasu |
| --- | --- | --- |
| 1/7/2022 | 01/08/2022 | 08.01.2022 23:59:59 |
| 1/19/2022 | 22.01.2022 | 22.01.2022 23:59:59 PM |
| 2/5/2022 | 02/05/2022 | 05.02.2022 23:59:59 PM |
| 2/28/2022 | 03/05/2022 | 05.03.2022 23:59:59 PM |
| 3/16/2022 | 03/19/2022 | 19.03.2022 23:59:59 |
| 4/1/2022 | 02.04.2022 | 02.04.2022 23:59:59 |
| 5/7/2022 | 05/07/2022 | 07.05.2022 23:59:59 |
| 5/16/2022 | 05/21/2022 | 21.05.2022 23:59:59 |
| 6/15/2022 | 06/18/2022 | 18.06.2022 23:59:59 |
| 6/26/2022 | 07/02/2022 | 02.07.2022 23:59:59 |
| 7/9/2022 | 07/09/2022 | 09.07.2022 23:59:59 |
| 7/22/2022 | 07/23/2022 | 23.07.2022 23:59:59 |
| 7/23/2022 | 07/23/2022 | 23.07.2022 23:59:59 |
| 7/27/2022 | 07/30/2022 | 30.07.2022 23:59:59 |
| 8/2/2022 | 08/06/2022 | 6.08.2022 23:59:59 |
| 8/8/2022 | 08/13/2022 | 13.08.2022 23:59:59 |
| 8/19/2022 | 20.08.2022 | 20.08.2022 23:59:59 |
| 9/26/2022 | 10/01/2022 | 01.10.2022 23:59:59 |
| 10/14/2022 | 15.10.2022 | 15.10.2022 23:59:59 |
| 10/29/2022 | 10/29/2022 | 10/29/2022 11:59:59 PM |

Pole „end\_of\_week” jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji weekend() i przekazanie pola daty jako jej argumentu.

Funkcja weekend() identyfikuje, w którym tygodniu wypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego tygodnia.

Diagram funkcji weekend(), przykład podstawowy

Diagram funkcji weekend(), przykład podstawowy

Diagram funkcji weekend()weekend(), przykład podstawowy ![Diagram pokazujący, jak funkcja weekend konwertuje datę transakcji na znacznik czasu ostatniej milisekundy tygodnia, w którym dana transakcja miała miejsce.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekend-examples-basic.png)

Transakcja 8191 miała miejsce 5 lutego. Zmienna systemowa FirstWeekDay ustawia pierwszy dzień tygodnia na niedzielę. Funkcja weekend() dowiaduje się, że pierwsza sobota po 5 lutego – a więc po końcu tygodnia – wypadała 5 lutego. W związku z tym wartość end\_of\_week dla tej transakcji zwraca ostatnią milisekundę tego dnia – 5 lutego, godz. 23:59:59.

## Przykład 2 – period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekend.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.

* Utworzenie pola previous\_week\_end zwracającego znacznik czasu początku tygodnia przed transakcją.

Skrypt ładowania

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

Transactions:
    Load
        *,
        weekend(date,-1) as previous_week_end,
        timestamp(weekend(date,-1)) as previous_week_end_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

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

* date

* previous\_week\_end

* previous\_week\_end\_timestamp

Tabela wynikowa

| date | koniec\_tygodnia | koniec\_tygodnia\_znacznik\_czasu |
| --- | --- | --- |
| 1/7/2022 | 01/01/2022 | 01.01.2022 23:59:59 |
| 1/19/2022 | 01/15/2022 | 15.01.2022 23:59:59 |
| 2/5/2022 | 01/29/2022 | 29.01.2022 23:59:59 |
| 2/28/2022 | 02/26/2022 | 26.02.2022 23:59:59 |
| 3/16/2022 | 03/12/2022 | 12.03.2022 23:59:59 |
| 4/1/2022 | 03/26/2022 | 26.03.2022 23:59:59 |
| 5/7/2022 | 04/30/2022 | 30.04.2022 23:59:59 |
| 5/16/2022 | 05/14/2022 | 14.05.2022 23:59:59 |
| 6/15/2022 | 06/11/2022 | 11.06.2022 23:59:59 |
| 6/26/2022 | 06/25/2022 | 25.06.2022 23:59:59 |
| 7/9/2022 | 07/02/2022 | 02.07.2022 23:59:59 |
| 7/22/2022 | 07/16/2022 | 16.07.2022 23:59:59 |
| 7/23/2022 | 07/16/2022 | 16.07.2022 23:59:59 |
| 7/27/2022 | 07/23/2022 | 23.07.2022 23:59:59 |
| 8/2/2022 | 07/30/2022 | 30.07.2022 23:59:59 |
| 8/8/2022 | 08/06/2022 | 6.08.2022 23:59:59 |
| 8/19/2022 | 08/13/2022 | 13.08.2022 23:59:59 |
| 9/26/2022 | 09/24/2022 | 24.09.2022 23:59:59 |
| 10/14/2022 | 10/08/2022 | 10/8/2022 11:59:59 PM |
| 10/29/2022 | 10/22/2022 | 10/22/2022 11:59:59 PM |

W tym przypadku, ponieważ wartości period\_no -1 użyto jako argumentu przesunięcia w funkcji weekend(), funkcja najpierw identyfikuje tydzień, w którym zawarto transakcje. Następnie identyfikuje ostatnią milisekundę poprzedniego tygodnia.

Diagram funkcji weekend(), przykład z argumentem period\_no

Diagram funkcji weekend(), przykład z argumentem period\_no

Diagram funkcji weekend()weekend(), przykład z argumentem period\_no ![Diagram pokazujący, jak funkcja weekend konwertuje datę transakcji na znacznik czasu ostatniej milisekundy tygodnia, w którym dana transakcja miała miejsce.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekend-examples-period-no.png)

Transakcja 8196 miała miejsce 15 czerwca. Funkcja weekend() oblicza, że tydzień zaczyna się 12 czerwca. W związku z tym poprzedni tydzień kończy się 11 czerwca o godz. 23:59:59. Ta wartość jest zwracana dla pola previous\_week\_end.

## Przykład 3 — first\_week\_day

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

#### Skrypt ładowania i wyniki

Przegląd

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

Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie. Jednak w tym przykładzie musimy ustawić wtorek jako pierwszy dzień tygodnia roboczego.

Skrypt ładowania

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

Transactions:
    Load
        *,
        weekend(date,0,1) as end_of_week,
        timestamp(weekend(date,0,1)) as end_of_week_timestamp,
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

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

* date

* end\_of\_week

* end\_of\_week\_timestamp

Tabela wynikowa

| date | koniec\_tygodnia | koniec\_tygodnia\_znacznik\_czasu |
| --- | --- | --- |
| 1/7/2022 | 01/10/2022 | 1/10/2022 11:59:59 PM |
| 1/19/2022 | 01/24/2022 | 1/24/2022 11:59:59 PM |
| 2/5/2022 | 02/07/2022 | 07.02.2022 23:59:59 |
| 2/28/2022 | 02/28/2022 | 28.02.2022 23:59:59 |
| 3/16/2022 | 03/21/2022 | 21.03.2022 23:59:59 |
| 4/1/2022 | 04/04/2022 | 4 kwietnia 2022 23:59:59 |
| 5/7/2022 | 05/09/2022 | 9 maja 2022 23:59:59 |
| 5/16/2022 | 05/16/2022 | 16 maja 2022 23:59:59 |
| 6/15/2022 | 06/20/2022 | 6/20/2022 11:59:59 PM |
| 6/26/2022 | 06/27/2022 | 6/27/2022 11:59:59 PM |
| 7/9/2022 | 07/11/2022 | 7/11/2022 11:59:59 PM |
| 7/22/2022 | 25.07.2022 | 25.07.2022 23:59:59 |
| 7/23/2022 | 25.07.2022 | 25.07.2022 23:59:59 |
| 7/27/2022 | 08/01/2022 | 01.08.2022 23:59:59 |
| 8/2/2022 | 08.08.2022 | 08.08.2022 23:59:59 |
| 8/8/2022 | 08.08.2022 | 8.08.2022 23:59:59 |
| 8/19/2022 | 08/22/2022 | 22.08.2022 23:59:59 |
| 9/26/2022 | 09/26/2022 | 26.09.2022 23:59:59 |
| 10/14/2022 | 10/17/2022 | 10/17/2022 11:59:59 PM |
| 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |

W tym przypadku, ponieważ funkcji weekend() przekazano wartość 1 jako argument first\_week\_date, funkcja ta ustawia wtorek jako pierwszy dzień tygodnia.

Diagram funkcji weekend(), przykład z argumentem first\_week\_day

Diagram funkcji weekend(), przykład z argumentem first\_week\_day

Diagram funkcji weekend()weekend(), przykład z argumentem first\_week\_day ![Diagram pokazujący, jak funkcja weekend konwertuje datę transakcji na znacznik czasu ostatniej milisekundy tygodnia, w którym dana transakcja miała miejsce.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekend-examples-first-week-day.png)

Transakcja 8191 miała miejsce 5 lutego. Funkcja weekend() oblicza, że pierwszy poniedziałek po tej dacie – a zatem także koniec tygodnia i zwracana wartość – przypadł na 6 lutego o godz. 23:59:59.

## Przykład 4 — przykład z obiektem wykresu

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

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

Przegląd

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

Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie. Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia zwracające znacznik czasu końca tygodnia, w którym wystąpiły transakcje, są tworzone jako miara w obiekcie wykresu aplikacji.

Skrypt ładowania

```
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: date.

Aby obliczyć początek tygodnia, kiedy ma miejsce transakcja, dodaj następujące miary:

* =weekend(date)

* =timestamp(weekend(date))

Tabela wynikowa

| date | =weekend(date) | =znacznik czasu(weekend(data)) |
| --- | --- | --- |
| 1/7/2022 | 01/08/2022 | 08.01.2022 23:59:59 |
| 1/19/2022 | 22.01.2022 | 22.01.2022 23:59:59 PM |
| 2/5/2022 | 02/05/2022 | 05.02.2022 23:59:59 PM |
| 2/28/2022 | 03/05/2022 | 05.03.2022 23:59:59 PM |
| 3/16/2022 | 03/19/2022 | 19.03.2022 23:59:59 |
| 4/1/2022 | 02.04.2022 | 02.04.2022 23:59:59 |
| 5/7/2022 | 05/07/2022 | 07.05.2022 23:59:59 |
| 5/16/2022 | 05/21/2022 | 21.05.2022 23:59:59 |
| 6/15/2022 | 06/18/2022 | 18.06.2022 23:59:59 |
| 6/26/2022 | 07/02/2022 | 02.07.2022 23:59:59 |
| 7/9/2022 | 07/09/2022 | 09.07.2022 23:59:59 |
| 7/22/2022 | 07/23/2022 | 23.07.2022 23:59:59 |
| 7/23/2022 | 07/23/2022 | 23.07.2022 23:59:59 |
| 7/27/2022 | 07/30/2022 | 30.07.2022 23:59:59 |
| 8/2/2022 | 08/06/2022 | 6.08.2022 23:59:59 |
| 8/8/2022 | 08/13/2022 | 13.08.2022 23:59:59 |
| 8/19/2022 | 20.08.2022 | 20.08.2022 23:59:59 |
| 9/26/2022 | 10/01/2022 | 01.10.2022 23:59:59 |
| 10/14/2022 | 15.10.2022 | 15.10.2022 23:59:59 |
| 10/29/2022 | 10/29/2022 | 10/29/2022 11:59:59 PM |

Miarę „end\_of\_week” tworzy się w obiekcie wykresu, używając funkcji weekend() i przekazując pole daty jako jej argument. Funkcja weekend() identyfikuje, w którym tygodniu przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego tygodnia.

Diagram funkcji weekend(), przykład obiektu wykresu

Diagram funkcji weekend(), przykład obiektu wykresu

Diagram funkcji weekend()weekend(), przykład obiektu wykresu ![Diagram pokazujący, jak funkcja weekend konwertuje datę transakcji na znacznik czasu ostatniej milisekundy tygodnia, w którym dana transakcja miała miejsce.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekend-examples-chart-object.png)

Transakcja 8191 miała miejsce 5 lutego. Zmienna systemowa FirstWeekDay ustawia pierwszy dzień tygodnia na niedzielę. Funkcja weekend() dowiaduje się, że pierwsza sobota po 5 lutego – a więc po końcu tygodnia – wypadała 5 lutego. W związku z tym wartość end\_of\_week dla tej transakcji zwraca ostatnią milisekundę tego dnia – 5 lutego, godz. 23:59:59.

## Przykład 5 — zastosowanie

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekend.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:

* Zestaw danych załadowany do tabeli o nazwie Employee\_Expenses.

* Dane zawierające identyfikatory pracowników, imiona i nazwiska pracowników oraz średnie dzienne roszczenia z tytułu wydatków każdego pracownika.

Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał, według identyfikatora pracownika oraz imienia i nazwiska pracownika, szacowane roszczenia z tytułu wydatków do poniesienia przez pozostałą część tygodnia.

Skrypt ładowania

```
Employee_Expenses:
Load
*
Inline
[
employee_id,employee_name,avg_daily_claim
182,Mark, $15
183,Deryck, $12.5
184,Dexter, $12.5
185,Sydney,$27
186,Agatha,$18
];
```

Wyniki

Wykonaj następujące czynności:

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

   * employee\_id

   * employee\_name

2. Następnie utwórz miarę, aby obliczyć narosłe odsetki:

   =(weekend(today(1))-today(1))\*avg\_daily\_claim

3. Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| employee\_id | nazwa\_pracownika | =(weekend(today(1))-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Mark | $90.00 |
| 183 | Deryck | 75,00 USD |
| 184 | Dexter | 75,00 USD |
| 185 | Sydney | $162.00 |
| 186 | Agata | $108.00 |

Funkcja weekend(), przyjmująca jako argument tylko dzisiejszą datę, zwraca datę końcową bieżącego tygodnia. Następnie wyrażenie odejmuje dzisiejszą datę od daty zakończenia tygodnia i zwraca liczbę dni pozostałych w tym tygodniu.

Wartość ta jest następnie mnożona przez średnie dzienne roszczenie z tytułu wydatków przez każdego pracownika, aby obliczyć szacunkową wartość roszczeń, które każdy pracownik złoży w pozostałej części tygodnia.