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.
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.
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.
Aby uzyskać więcej informacji o tej zmiennej systemowej, zobacz FirstWeekDay
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/RRRR. 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.
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ś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
1/2/2021
Pon 2020 Gru 28
2021-01-03
1/2/2021
Wt 2020 Gru 29
2021-01-03
2.01.2021
Śr 30 Gru 2020
2021-01-03
2.01.2021
Czw 31 Gru 2020
2021-01-03
02.01.2021
Pt 1 sty 2021
03.01.2021
02.01.2021
Sob. 2 sty. 2021
2021-01-03
2.01.2021
Niedz. 3 sty 2021
2021-01-03
1/9/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
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.
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
znacznik czasu końca tygodnia
1/7/2022
01/08/2022
1/8/2022 11:59:59 PM
1/19/2022
01/22/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
04/02/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
9.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
06.08.2022 23:59:59
8/8/2022
08/13/2022
13.08.2022 23:59:59
8/19/2022
08/20/2022
20.08.2022 23:59:59
9/26/2022
10/01/2022
01.10.2022 23:59:59
10/14/2022
10/15/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
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
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ą.
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
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
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera ten sam zestaw danych i zastosowanie co w pierwszym przykładzie. Jednak w tym przykładzie musimy ustawić wtorek jako pierwszy dzień tygodnia roboczego.
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
07/25/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
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
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera ten sam zestaw danych i zastosowanie 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.
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
3/19/2022 11:59:59 PM
4/1/2022
04/02/2022
4/2/2022 11:59:59 PM
5/7/2022
05/07/2022
5/7/2022 11:59:59 PM
5/16/2022
05/21/2022
5/21/2022 11:59:59 PM
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
10/15/2022 11:59:59 PM
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
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
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.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
employee_id
employee_name
Następnie utwórz miarę, aby obliczyć narosłe odsetki:
=(weekend(today(1))-today(1))*avg_daily_claim
Ustaw Formatowanie liczb miary na Waluta.
Tabela wynikowa
ID pracownika
nazwa_pracownika
=(weekend(today(1))-today(1))*avg_daily_claim
182
Mark
$90.00
183
Deryck
$75.00
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.
Czy ta strona była pomocna?
Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!