Deze functie retourneert een waarde die overeenkomt met een tijdstempel van de laatste milliseconde van de laatste dag (zondag) van de kalenderweek die date bevat. De standaarduitvoernotatie is de DateFormat die is ingesteld in het script.
De weekend()-functie bepaalt welke week de datum in valt. Het retourneert vervolgens een tijdstempel, in datumnotatie, voor de laatste milliseconde van die week. De eerste dag van de week wordt bepaald door de omgevingsvariabele FirstWeekDay. Maar dit kan worden vervangen door het first_week_day-argument in de weekend()-functie.
Argumenten
Argument
Beschrijving
timestamp
De te evalueren datum of tijdstempel.
period_no
shift is een geheel getal, waarbij de waarde 0 de week aangeeft die date bevat. Negatieve waarden in verschuiving geven voorgaande weken aan en positieve waarden geven volgende weken aan.
first_week_day
Geeft de dag op waarop de week begint. Bij weglating wordt de waarde van de variabele FirstWeekDay gebruikt.
De mogelijke waarden voor first_week_day zijn 0 voor maandag, 1 voor dinsdag, 2 voor woensdag, 3 voor donderdag, 4 voor vrijdag, 5 voor zaterdag en 6 voor zondag.
Zie FirstWeekDay voor meer informatie over de systeemvariabele
Wanneer gebruiken
De weekend()-functie wordt doorgaans gebruikt als onderdeel van een uitdrukking als de gebruiker wil dat in de berekening de resterende dagen van de week voor de opgegeven datum wordt gebruikt. Hij zou bijvoorbeeld kunnen worden gebruikt als een gebruiker de totale rente wil berekenen die tijdens de week nog niet is opgebouwd.
De volgende voorbeelden gaan uit van het volgende:
SET FirstWeekDay=0;
Voorbeeld
Resultaat
weekend('01/10/2013')
Retourneert 01/12/2013 23:59:59.
weekend('01/10/2013', -1)
Retourneert 01/05/2013 23:59:59..
weekend('01/10/2013', 0, 1)
Retourneert 01/14/2013 23:59:59.
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeelden:
Als u ISO-instellingen wilt voor weken en weeknummers, moet u het volgende opnemen in het script:
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
Als u US-instellingen wilt, moet u het volgende opnemen in het script:
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
De bovenstaande voorbeelden resulteren in het volgende op basis van de functie weekend():
Voorbeeld van de functie Weekend
Date
ISO laatste dag van de week
US laatste dag van de week
Za 2020 Dec 26
2020-12-27
12/26/2020
Zo 2020 Dec 27
2020-12-27
1/2/2021
Ma 2020 Dec 28
2021-01-03
1/2/2021
Di 2020 Dec 29
2021-01-03
1/2/2021
Wo 2020 Dec 30
2021-01-03
1/2/2021
Do 2020 Dec 31
2021-01-03
1/2/2021
Vr 2021 Jan 1
2021-01-03
1/2/2021
Za 2021 Jan 2
2021-01-03
1/2/2021
Zo 2021 Jan 3
2021-01-03
1/9/2021
Ma 2021 Jan 4
2021-01-10
1/9/2021
Di 2021 Jan 5
2021-01-10
1/9/2021
InformatieDe week eindigt op zondag in de ISO-kolom en op zaterdag in de US-kolom.
Voorbeeld 1 – Basisvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een set transacties voor 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Het maken van een veld, end_of_week, dat een tijdstempel voor het einde van de week retourneert waarin de transactie plaatsvond.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
end_of_week
end_of_week_timestamp
Resultatentabel
date
end_of_week
end_of_week_timestamp
1/7/2022
01/08/2022
1/8/2022 11:59:59 PM
1/19/2022
01/22/2022
1/22/2022 11:59:59 PM
2/5/2022
02/05/2022
2/5/2022 11:59:59 PM
2/28/2022
03/05/2022
3/5/2022 11: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
6/18/2022 11:59:59 PM
6/26/2022
07/02/2022
7/2/2022 11:59:59 PM
7/9/2022
07/09/2022
7/9/2022 11:59:59 PM
7/22/2022
07/23/2022
7/23/2022 11:59:59 PM
7/23/2022
07/23/2022
7/23/2022 11:59:59 PM
7/27/2022
07/30/2022
7/30/2022 11:59:59 PM
8/2/2022
08/06/2022
8/6/2022 11:59:59 PM
8/8/2022
08/13/2022
8/13/2022 11:59:59 PM
8/19/2022
08/20/2022
8/20/2022 11:59:59 PM
9/26/2022
10/01/2022
10/1/2022 11:59:59 PM
10/14/2022
10/15/2022
10/15/2022 11:59:59 PM
10/29/2022
10/29/2022
10/29/2022 11:59:59 PM
Het veld end_of_week wordt gemaakt in de voorafgaande load-instructie met behulp van de functie weekend() en geeft het datumveld door als het argument van de functie.
De functie weekend() identificeert in welke week de datumwaarde valt en retourneert een tijdstempel voor de laatste milliseconde van die week.
Transactie 8191 vond plaats op 5 februari. De systeemvariabele FirstWeekDay stelt de eerste dag van de week in op een zondag. De weekend()-functie identificeert dat de eerste zaterdag na 5 februari, en daarom het einde van de week, op 5 februari viel. Daarom retourneert de end_of_week-waarde voor die transactie de laatste milliseconde van die dag, die op 5 februari om 11:59:59 PM was.
Voorbeeld 2 – period_no
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
Het maken van een veld, previous_week_end, dat de tijdstempel voor het einde van de week retourneert voordat de transactie plaatsvond.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
previous_week_end
previous_week_end_timestamp
Resultatentabel
date
end_of_week
end_of_week_timestamp
1/7/2022
01/01/2022
1/1/2022 11:59:59 PM
1/19/2022
01/15/2022
1/15/2022 11:59:59 PM
2/5/2022
01/29/2022
1/29/2022 11:59:59 PM
2/28/2022
02/26/2022
2/26/2022 11:59:59 PM
3/16/2022
03/12/2022
3/12/2022 11:59:59 PM
4/1/2022
03/26/2022
3/26/2022 11:59:59 PM
5/7/2022
04/30/2022
4/30/2022 11:59:59 PM
5/16/2022
05/14/2022
5/14/2022 11:59:59 PM
6/15/2022
06/11/2022
6/11/2022 11:59:59 PM
6/26/2022
06/25/2022
6/25/2022 11:59:59 PM
7/9/2022
07/02/2022
7/2/2022 11:59:59 PM
7/22/2022
07/16/2022
7/16/2022 11:59:59 PM
7/23/2022
07/16/2022
7/16/2022 11:59:59 PM
7/27/2022
07/23/2022
7/23/2022 11:59:59 PM
8/2/2022
07/30/2022
7/30/2022 11:59:59 PM
8/8/2022
08/06/2022
8/6/2022 11:59:59 PM
8/19/2022
08/13/2022
8/13/2022 11:59:59 PM
9/26/2022
09/24/2022
9/24/2022 11:59:59 PM
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
In dit geval, omdat een period_no van -1 werd gebruikt als het offset-argument in de weekend()-functie, identificeert de functie eerst de week waarin de transacties plaatsvinden. Het kijkt dan een week eerder en identificeert de laatste milliseconde van die week.
Transactie 8196 vond plaats op 15 juni. De weekend()-functie identificeert dat de week op 12 juni begint. Daarom eindigt de vorige week op 11 juni om 11:59:59 PM; dit is de waarde die voor het previous_week_end-veld wordt geretourneerd.
Voorbeeld 3 – first_week_day
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat dezelfde gegevensset en scenario als het eerste voorbeeld. Maar in dit voorbeeld moeten we dinsdag instellen als de eerste dag van de werkweek.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
end_of_week
end_of_week_timestamp
Resultatentabel
date
end_of_week
end_of_week_timestamp
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
2/7/2022 11:59:59 PM
2/28/2022
02/28/2022
2/28/2022 11:59:59 PM
3/16/2022
03/21/2022
3/21/2022 11:59:59 PM
4/1/2022
04/04/2022
4/4/2022 11:59:59 PM
5/7/2022
05/09/2022
5/9/2022 11:59:59 PM
5/16/2022
05/16/2022
5/16/2022 11:59:59 PM
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
7/25/2022 11:59:59 PM
7/23/2022
07/25/2022
7/25/2022 11:59:59 PM
7/27/2022
08/01/2022
8/1/2022 11:59:59 PM
8/2/2022
08/08/2022
8/8/2022 11:59:59 PM
8/8/2022
08/08/2022
8/8/2022 11:59:59 PM
8/19/2022
08/22/2022
8/22/2022 11:59:59 PM
9/26/2022
09/26/2022
9/26/2022 11:59:59 PM
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
In dit geval geldt dat omdat het first_week_date-argument 1 wordt gebruikt in de weekend()-functie, dinsdag als eerste dag van de week wordt ingesteld.
Transactie 8191 vond plaats op 5 februari. De weekend()-functie identificeert dat de eerste maandag na deze datum, en daarom het einde van de week en geretourneerde waarde, op 6 februari om 11:59:59 PM viel.
Voorbeeld 4 – diagramobjectvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat dezelfde gegevensset en scenario als het eerste voorbeeld. In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die een tijdstempel retourneert voor het einde van de week waarin de transacties plaatsvonden, wordt gemaakt als meting in een diagramobject van de toepassing.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Voeg de volgende metingen toe om de start van de week waarin een transactie plaatsvindt te berekenen:
=weekend(date)
=timestamp(weekend(date))
Resultatentabel
date
=weekend(date)
=timestamp(weekend(date))
1/7/2022
01/08/2022
1/8/2022 11:59:59 PM
1/19/2022
01/22/2022
1/22/2022 11:59:59 PM
2/5/2022
02/05/2022
2/5/2022 11:59:59 PM
2/28/2022
03/05/2022
3/5/2022 11: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
6/18/2022 11:59:59 PM
6/26/2022
07/02/2022
7/2/2022 11:59:59 PM
7/9/2022
07/09/2022
7/9/2022 11:59:59 PM
7/22/2022
07/23/2022
7/23/2022 11:59:59 PM
7/23/2022
07/23/2022
7/23/2022 11:59:59 PM
7/27/2022
07/30/2022
7/30/2022 11:59:59 PM
8/2/2022
08/06/2022
8/6/2022 11:59:59 PM
8/8/2022
08/13/2022
8/13/2022 11:59:59 PM
8/19/2022
08/20/2022
8/20/2022 11:59:59 PM
9/26/2022
10/01/2022
10/1/2022 11:59:59 PM
10/14/2022
10/15/2022
10/15/2022 11:59:59 PM
10/29/2022
10/29/2022
10/29/2022 11:59:59 PM
De meting end_of_week wordt gemaakt in het diagramobject met behulp van de functie weekend() en geeft het veld door als het argument van de functie. De weekend()-functie identificeert in welke week de datumwaarde valt en retourneert een tijdstempel voor de laatste milliseconde van die week.
Transactie 8191 vond plaats op 5 februari. De systeemvariabele FirstWeekDay stelt de eerste dag van de week in op een zondag. De weekend()-functie identificeert dat de eerste zaterdag na 5 februari, en daarom het einde van de week, op 5 februari viel. Daarom retourneert de end_of_week-waarde voor die transactie de laatste milliseconde van die dag, die op 5 februari om 11:59:59 PM was.
Voorbeeld 5 – Scenario
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset die wordt geladen in een tabel met de naam Employee_Expenses.
Gegevens omvatten werknemers-id's, werknemersnamen en de gemiddelde dagelijkse onkostendeclaraties van elke werknemer.
De eindgebruiker wil graag een diagramobject dat per werknemer-id en werknemersnaam de geschatte nog te maken onkostendeclaraties voor de rest van de week weergeeft.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
employee_id
employee_name
Maak nu een meting om de opgebouwde rente te berekenen:
=(weekend(today(1))-today(1))*avg_daily_claim
Stel de Getalnotatie van de meting in op Geld.
Resultatentabel
employee_id
employee_name
=(weekend(today(1))-today(1))*avg_daily_claim
182
Mark
$90.00
183
Deryck
$75.00
184
Dexter
$75.00
185
Sydney
$162.00
186
Agatha
$108.00
Door de datum van vandaag als het enige argument te gebruiken, retourneert de weekend()-functie de einddatum van de huidige week. Door vervolgens de datum van vandaag af te trekken van de einddatum van de week, retourneert de uitdrukking het aantal resterende dagen in deze week.
Deze waarde wordt vervolgens vermenigvuldigd met de gemiddelde dagelijkse onkostendeclaratie van elke werknemer om de geschatte waarde te berekenen van de declaraties die elke werknemer naar verwachting in de resterende week zal indienen.
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!