# makeweekdate Script- en diagramfunctie

Deze functie retourneert een datum die is berekend voor het jaar, het weeknummer en de dag van de week.

Syntaxis:

MakeWeekDate(weekyear [, week [, weekday [, first\_week\_day [, broken\_weeks [, reference\_day]]]]])

Retourgegevenstypen: dubbele waarde

De `makeweekdate()`-functie is beschikbaar zowel als een script- als een diagramfunctie. De functie berekent de datum op basis van de parameters die in de functie worden gepasseerd.

Argumenten

| Argument | Beschrijving |
| --- | --- |
| weekyear | Het jaar dat is gedefinieerd door de functie `WeekYear()` voor de specifieke datum is het jaar waartoe het weeknummer behoort.<br><br>InformatieHet weekjaar kan in sommige gevallen afwijken van het kalenderjaar, bijvoorbeeld als week 1 start in december van het voorgaande jaar. |
| week | Het weeknummer dat is gedefinieerd door de functie `Week()` voor de specifieke datum.<br><br>Als er geen weeknummer is aangegeven, wordt 1 verondersteld. |
| weekday | De dag van de week die is gedefinieerd door de functie `WeekDay()` voor de desbetreffende datum. 0 is de eerste dag van de week en 6 is de laatste dag van de week.<br><br>Als er geen dag van de week is aangegeven, wordt 0 verondersteld.<br><br>InformatieHoewel met 0 altijd de eerste dag van de week en met 6 altijd de laatste dag van de week wordt bedoeld, wordt de overeenkomende weekdag bepaald door de parameter first\_week\_day. Bij weglating wordt de waarde van de variabele FirstWeekDay gebruikt.<br><br>Als er gebroken weken worden gebruikt, samen met een onmogelijk combinatie van parameters, leidt dit mogelijk tot een resultaat dat niet tot het gekozen jaar behoort.<br><br>Voorbeeld:<br><br>```<br>MakeWeekDate(2021,1,0,6,1)<br>```<br><br>Retourneert ‘Dec 27 2020’ omdat deze dag de eerste dag (zondag) van de opgegeven week is. Jan 1 2021 was een vrijdag. |
| first\_week\_day | Geeft de dag op waarop de week begint. Bij weglating wordt de waarde van de variabele FirstWeekDay gebruikt.<br><br>De mogelijke first\_week\_day-waarden zijn 0 voor maandag, 1 voor dinsdag, 2 voor woensdag, 3 voor donderdag, 4 voor vrijdag, 5 voor zaterdag en 6 voor zondag.<br><br>Zie [FirstWeekDay](https://help.qlik.com/nl-NL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) voor meer informatie over de systeemvariabele. |
| broken\_weeks | Als u broken\_weeks (gebroken weken) niet specificeert, dan wordt de waarde van variabele BrokenWeeks gebruikt om te definiëren of weken al dan niet gebroken zijn.<br><br>Zie [BrokenWeeks](https://help.qlik.com/nl-NL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) voor meer informatie over de systeemvariabele |
| reference\_day | Als u reference\_day niet opgeeft, wordt de waarde van variabele ReferenceDay gebruikt om te definiëren welke dag in januari wordt ingesteld als referentiedag voor het definiëren van week 1.<br><br>Zie [ReferenceDay](https://help.qlik.com/nl-NL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) voor meer informatie over de systeemvariabele |

## Wanneer gebruiken

De `makeweekdate()`-functie wordt normaliter gebruikt in het script voor het genereren van gegevens om een lijst met datums te genereren of om datums op te bouwen wanneer het jaar, de week of dag van de week in de invoergegevens zijn verstrekt.

De volgende voorbeelden gaan uit van het volgende:

```
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
```

Voorbeelden van functies

| Voorbeeld | Resultaat |
| --- | --- |
| `makeweekdate(2014,6,6)` | retourneert 02/09/2014 |
| `makeweekdate(2014,6,1)` | retourneert 02/04/2014 |
| `makeweekdate(2014,6)` | retourneert 02/03/2014 (er wordt uitgegaan van weekdag 0) |

## Landinstellingen

Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/YYYY. 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 toepassingen 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 Qlik Sense gebruikersinterface. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.

## Voorbeeld 1 – Inclusief dag

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

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling met een totale verkoop per week voor 2022 in de tabel `Sales`.

* De transactiedatums worden ingevoerd in drie velden: `year`, `week` en `sales`.

* Een voorafgaande lading die wordt gebruikt om een meting te maken, `end_of_week`, met de `makeweekdate()`-functie om de datum voor de vrijdag van die week te retourneren met de notitie mm/dd/jjjj.

Om aan te tonen dat de geretourneerde datum een vrijdag is, wordt de `end_of_week`-uitdrukking ook verpakt in de `weekday()`-functie om de dag van de week te laten zien.

Load-script

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Transactions:
    Load
        *,
        makeweekdate(transaction_year, transaction_week,4) as end_of_week,
        weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
        ; 
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `transaction_year`

* `transaction_week`

* `end_of_week`

* `week_day`

Resultatentabel

| transaction\_year | transaction\_week | end\_of\_week | week\_day |
| --- | --- | --- | --- |
| 2022 | 01 | 01/07/2022 | Vr |
| 2022 | 02 | 01/14/2022 | Vr |
| 2022 | 03 | 01/21/2022 | Vr |
| 2022 | 04 | 01/28/2022 | Vr |
| 2022 | 05 | 02/04/2022 | Vr |
| 2022 | 06 | 02/11/2022 | Vr |
| 2022 | 07 | 02/18/2022 | Vr |

Het veld `end_of_week` wordt gemaakt in de vorige load-instructie met behulp van de functie `makeweekdate()`. De velden `transaction_year` en `transaction_week` worden als jaar- en weekargumenten in de functie gepasseerd. Er wordt een waarde van 4 gebruikt voor het dagargument.

De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de `DateFormat`-systeemvariabele.

De `makeweekdate()`-functie en de bijbehorende argumenten worden ook verpakt in een `weekday()`-functie om het `week_day`-veld te retourneren, en zoals in de bovenstaande tabel te zien is, toont het `week_day`-veld dat deze datums op een vrijdag vallen.

## Voorbeeld 2 – Exclusief dag

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

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensset met een totale verkoop per week voor 2022 in de tabel Sales.

* De transactiedatums worden ingevoerd in drie velden: year, week en sales.

* Een voorafgaande lading die wordt gebruikt om een meting te maken, first\_day\_of\_week, met behulp van de makeweekdate()-functie. Dit retourneert de datum voor de maandag van die week met de notatie mm/dd/jjjj.

Om aan te tonen dat de geretourneerde datum een maandag is, wordt de first\_day\_of\_week-uitdrukking ook verpakt in de weekday()-functie om de dag van de week te laten zien.

Load-script

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Transactions:
    Load
        *,
        makeweekdate(transaction_year, transaction_week) as first_day_of_week,
        weekday(makeweekdate(transaction_year, transaction_week)) as week_day
        ; 
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* transaction\_year

* transaction\_week

* first\_day\_of\_week

* week\_day

Resultatentabel

| transaction\_year | transaction\_week | first\_day\_of\_week | week\_day |
| --- | --- | --- | --- |
| 2022 | 01 | 01/03/2022 | Ma |
| 2022 | 02 | 01/10/2022 | Ma |
| 2022 | 03 | 01/17/2022 | Ma |
| 2022 | 04 | 01/24/2022 | Ma |
| 2022 | 05 | 01/31/2022 | Ma |
| 2022 | 06 | 02/07/2022 | Ma |
| 2022 | 07 | 02/14/2022 | Ma |

Het veld first\_day\_of\_week wordt gemaakt in de vorige load-instructie met behulp van de functie makeweekdate(). De parameters transaction\_year en transaction\_week worden als functie-argumenten gepasseerd en de dagparameter blijft leeg.

De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de DateFormat-systeemvariabele.

De makeweekdate()-functie en de bijbehorende argumenten worden ook verpakt in een weekday()-functie om het week\_day-veld te retourneren. Zoals te zien is in de bovenstaande tabel, retourneert het veld week\_day in alle gevallen maandag omdat deze parameter leeg is in de functie makeweekdate(), waardoor de standaardwaarde 0 (eerste dag van de week) wordt en de eerste dag van de week door de systeemvariabele FirstWeekDay wordt ingesteld op maandag.

## Voorbeeld 3 – diagramobjectvoorbeeld

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

#### Load-script en diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensset met een totale verkoop per week voor 2022 in de tabel Sales.

* De transactiedatums worden ingevoerd in drie velden: year, week en sales.

In dit voorbeeld wordt een diagramobject gebruikt om een meting te maken die equivalent is aan de end\_of\_week-berekening uit het eerste voorbeeld. Deze meting gebruikt de makeweekdate()-functie om de datum te retourneren voor de vrijdag van die week met de notatie mm/dd/jjjj.

Om te bewijzen dat de geretourneerde datum een vrijdag is, wordt er een tweede meting gemaakt om de dag van de week te retourneren.

Load-script

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
```

Resultaten

Doe het volgende:

1. Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

   * transaction\_year

   * transaction\_week

2. Om de berekening uit te voeren die equivalent is aan die uit het end\_of\_week-veld uit het eerste voorbeeld, maakt u de volgende meting:

   =makeweekdate(transaction\_year,transaction\_week,4)

3. Maak de volgende meting om de dag van de week per transactie te berekenen:

   =weekday(makeweekdate(transaction\_year,transaction\_week,4))

Resultatentabel

| transaction\_year | transaction\_week | =makeweekdate(transaction\_year,transaction\_week,4) | =weekday(makeweekdate(transaction\_year,transaction\_week,4)) |
| --- | --- | --- | --- |
| 2022 | 01 | 01/07/2022 | Vr |
| 2022 | 02 | 01/14/2022 | Vr |
| 2022 | 03 | 01/21/2022 | Vr |
| 2022 | 04 | 01/28/2022 | Vr |
| 2022 | 05 | 02/04/2022 | Vr |
| 2022 | 06 | 02/11/2022 | Vr |
| 2022 | 07 | 02/18/2022 | Vr |

Er wordt een equivalent veld voor end\_of\_week in het diagramobject gemaakt als een meting met behulp van de functie makeweekdate(). De velden transaction\_year en transaction\_week worden als jaar- en weekargumenten gepasseerd. Er wordt een waarde van 4 gebruikt voor het dagargument.

De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de DateFormat-systeemvariabele.

De makeweekdate()-functie en de bijbehorende argumenten worden ook verpakt in een weekday()-functie om een berekening te retourneren die equivalent is aan die van het week\_day-veld uit het eerste voorbeeld. Zoals te zien in de bovenstaande tabel, toont de laatste kolom aan de rechterkant dat deze datums op een vrijdag vallen.

## Voorbeeld 4 – Scenario

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

#### Load-script en diagramuitdrukking

Overzicht

In dit voorbeeld wordt een lijst met datums gemaakt met alle vrijdagen in 2022.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.

Load-script

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Calendar:
    load
	    *,
        weekday(date) as weekday
    where year(date)=2022;
load
    makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
```

Resultaten

Resultatentabel

| date | weekday |
| --- | --- |
| 01/07/2022 | Vr |
| 01/14/2022 | Vr |
| 01/21/2022 | Vr |
| 01/28/2022 | Vr |
| 02/04/2022 | Vr |
| 02/11/2022 | Vr |
| 02/18/2022 | Vr |
| 02/25/2022 | Vr |
| 03/04/2022 | Vr |
| 03/11/2022 | Vr |
| 03/18/2022 | Vr |
| 03/25/2022 | Vr |
| 04/01/2022 | Vr |
| 04/08/2022 | Vr |
| 04/15/2022 | Vr |
| 04/22/2022 | Vr |
| 04/29/2022 | Vr |
| 05/06/2022 | Vr |
| 05/13/2022 | Vr |
| 05/20/2022 | Vr |
| 05/27/2022 | Vr |
| 06/03/2022 | Vr |
| 06/10/2022 | Vr |
| 06/17/2022 | Vr |
| Nog 27 rijen |  |

De makeweekdate()-functie vindt iedere vrijdag in 2022. Door gebruik van een weekparameter van -2 worden geen datums overgeslagen. Als laatste maakt een voorafgaande lading een extra weekday-veld voor duidelijkheid waarmee wordt aangetoond dat iedere date-waarde een vrijdag is.