# weekstart Fonction de script et de graphique

Cette fonction renvoie une valeur correspondant à un horodatage de la première milliseconde du premier jour de la semaine calendaire contenant l'argument date. Le format de sortie par défaut correspond au format de date DateFormat défini dans le script.

Syntaxe :

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

Type de données renvoyé : double

La fonction `weekstart()` détermine la semaine au cours de laquelle tombe la date. Elle renvoie ensuite un horodatage, au format date, pour la première milliseconde de cette semaine-là. Le premier jour de la semaine est déterminé par la variable d'environnement `FirstWeekDay`. Cependant, cela peut être remplacé par l'argument `first_week_day` dans la fonction `weekstart()`.

Arguments

| Argument | Description |
| --- | --- |
| timestamp | Date ou horodatage à évaluer. |
| period\_no | shift est un entier, où la valeur 0 indique la semaine comprenant l'argument date. Les valeurs négatives spécifiées pour shift indiquent les semaines passées tandis que les valeurs positives désignent les semaines à venir. |
| first\_week\_day | Spécifie le jour où débute la semaine. S'il est omis, c'est la valeur de la variable FirstWeekDay qui est utilisée.<br><br>Les valeurs possibles de first\_week\_day sont 0 pour lundi, 1 pour mardi, 2 pour mercredi, 3 pour jeudi, 4 pour vendredi, 5 pour samedi et 6 pour dimanche.<br><br>Pour plus d'informations sur la variable système, voir [FirstWeekDay](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |

## Cas d'utilisation de weekstart

La fonction `weekstart()` est couramment utilisée dans le cadre d'une expression lorsque l'utilisateur souhaite que le calcul utilise la fraction de la semaine qui s'est écoulée jusqu'à présent. Par exemple, cela peut permettre à un utilisateur de calculer le total des salaires touchés par les employés au cours de la semaine jusqu'à ce jour.

Les exemples suivants supposent :

```
SET FirstWeekDay=0;
```

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `weekstart('01/12/2013')` | Renvoie 01/07/2013. |
| `weekstart('01/12/2013', -1 )` | Renvoie 11/31/2012. |
| `weekstart('01/12/2013', 0, 1)` | Renvoie 01/08/2013. |

## Paramètres régionaux

Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/DD/YYYY. Le format de date est indiqué dans l'instruction `SET DateFormat` de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples. Pour plus d'informations, consultez [Modification des paramètres régionaux des applications et des scripts](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Les paramètres régionaux par défaut des applications sont basés sur le profil utilisateur. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Cloud. Qlik Cloud sera affiché dans la même langue que celle du navigateur que vous utilisez.

Si vous êtes un créateur d'applications, vous pouvez définir la région par défaut des applications que vous créez. Pour plus d'informations, consultez [Sélection des paramètres régionaux de votre choix pour la création d'applications et de scripts dans Qlik Cloud Analytics](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Exemples :

Si vous souhaitez utiliser des paramètres ISO pour les semaines et les numéros de semaine, assurez-vous que votre script comporte les éléments suivants :

```
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
```

Si vous souhaitez utiliser des paramètres US, assurez-vous que votre script comporte les éléments suivants :

```
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
```

Les exemples ci-dessus aboutissent au résultat suivant via la fonction weekstart() :

Exemple de fonction Weekstart

| Date | Début de semaine ISO | Début de semaine US |
| --- | --- | --- |
| Sat 2020 Dec 26 | 2020-12-21 | 12/20/2020 |
| Sun 2020 Dec 27 | 2020-12-21 | 12/27/2020 |
| Mon 2020 Dec 28 | 2020-12-28 | 12/27/2020 |
| Tue 2020 Dec 29 | 2020-12-28 | 12/27/2020 |
| Wed 2020 Dec 30 | 2020-12-28 | 12/27/2020 |
| Thu 2020 Dec 31 | 2020-12-28 | 12/27/2020 |
| Fri 2021 Jan 1 | 2020-12-28 | 12/27/2020 |
| Sat 2021 Jan 2 | 2020-12-28 | 12/27/2020 |
| Sun 2021 Jan 3 | 2020-12-28 | 1/3/2021 |
| Mon 2021 Jan 4 | 2021-01-04 | 1/3/2021 |
| Tue 2021 Jan 5 | 2021-01-04 | 1/3/2021 |

Note InformationsLes débuts de semaine sont les lundis dans la colonne ISO et les dimanches dans la colonne US.

## Exemple 1 – aucun argument supplémentaire

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

#### Script de chargement et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données contenant un ensemble de transactions pour 2022, chargé dans une table appelée Transactions.

* Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).

* Création d'un champ, start\_of\_week, qui renvoie un horodatage du début de la semaine au cours de laquelle les transactions ont eu lieu.

Script de chargement

```
SET FirstWeekDay=6;

Transactions:
    Load
        *,
        weekstart(date) as start_of_week,
        timestamp(weekstart(date)) as start_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
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* date

* start\_of\_week

* start\_of\_week\_timestamp

Tableau de résultats

| date | start\_of\_week | start\_of\_week\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/02/2022 | 1/2/2022 12:00:00 AM |
| 1/19/2022 | 01/16/2022 | 1/16/2022 12:00:00 AM |
| 2/5/2022 | 01/30/2022 | 1/30/2022 12:00:00 AM |
| 2/28/2022 | 02/27/2022 | 2/27/2022 12:00:00 AM |
| 3/16/2022 | 03/13/2022 | 3/13/2022 12:00:00 AM |
| 4/1/2022 | 03/27/2022 | 3/27/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/16/2022 | 05/15/2022 | 5/15/2022 12:00:00 AM |
| 6/15/2022 | 06/12/2022 | 6/12/2022 12:00:00 AM |
| 6/26/2022 | 06/26/2022 | 6/26/2022 12:00:00 AM |
| 7/9/2022 | 07/03/2022 | 7/3/2022 12:00:00 AM |
| 7/22/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/23/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/27/2022 | 07/24/2022 | 7/24/2022 12:00:00 AM |
| 8/2/2022 | 07/31/2022 | 7/31/2022 12:00:00 AM |
| 8/8/2022 | 08/07/2022 | 8/7/2022 12:00:00 AM |
| 8/19/2022 | 08/14/2022 | 8/14/2022 12:00:00 AM |
| 9/26/2022 | 09/25/2022 | 9/25/2022 12:00:00 AM |
| 10/14/2022 | 10/09/2022 | 10/9/2022 12:00:00 AM |
| 10/29/2022 | 10/23/2022 | 10/23/2022 12:00:00 AM |

Le champ start\_of\_week est créé dans l'instruction preceding load via la fonction weekstart() et en transmettant le champ date comme argument de la fonction.

La fonction weekstart() identifie initialement la semaine de la valeur date, renvoyant un horodatage pour la première milliseconde de cette semaine-là.

Diagramme de la fonction weekstart(), exemple sans argument supplémentaire

Diagramme de la fonction weekstart(), exemple sans argument supplémentaire

Diagramme de la fonction weekstart()weekstart(), exemple sans argument supplémentaire ![Diagramme montrant comment la fonction weekstart convertit la date de transaction en un horodatage pour la première milliseconde de la semaine de la transaction.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-no-add-arg.png)

La transaction 8191 a eu lieu le 5 février. La variable système FirstWeekDay définit le premier jour de la semaine comme étant un dimanche. La fonction weekstart() identifie que le premier dimanche avant le 5 février – et par conséquent le début de la semaine – était le 30 janvier. Par conséquent, la valeur start\_of\_week pour cette transaction renvoie la première milliseconde de ce jour-là, le 30 janvier à 12:00:00 AM.

## Exemple 2 – period\_no

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

#### Script de chargement et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Même jeu de données et même scénario que ceux du premier exemple.

* Création d'un champ, previous\_week\_start, qui renvoie l'horodatage du début du trimestre avant la transaction.

Script de chargement

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

Transactions:
    Load
        *,
        weekstart(date,-1) as previous_week_start,
        timestamp(weekstart(date,-1)) as previous_week_start_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
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* date

* previous\_week\_start

* previous\_week\_start\_timestamp

Tableau de résultats

| date | previous\_week\_start | previous\_week\_start\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 12/26/2021 | 12/26/2021 12:00:00 AM |
| 1/19/2022 | 01/09/2022 | 1/9/2022 12:00:00 AM |
| 2/5/2022 | 01/23/2022 | 1/23/2022 12:00:00 AM |
| 2/28/2022 | 02/20/2022 | 2/20/2022 12:00:00 AM |
| 3/16/2022 | 03/06/2022 | 3/6/2022 12:00:00 AM |
| 4/1/2022 | 03/20/2022 | 3/20/2022 12:00:00 AM |
| 5/7/2022 | 04/24/2022 | 4/24/2022 12:00:00 AM |
| 5/16/2022 | 05/08/2022 | 5/8/2022 12:00:00 AM |
| 6/15/2022 | 06/05/2022 | 6/5/2022 12:00:00 AM |
| 6/26/2022 | 06/19/2022 | 6/19/2022 12:00:00 AM |
| 7/9/2022 | 06/26/2022 | 6/26/2022 12:00:00 AM |
| 7/22/2022 | 07/10/2022 | 7/10/2022 12:00:00 AM |
| 7/23/2022 | 07/10/2022 | 7/10/2022 12:00:00 AM |
| 7/27/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 8/2/2022 | 07/24/2022 | 7/24/2022 12:00:00 AM |
| 8/8/2022 | 07/31/2022 | 7/31/2022 12:00:00 AM |
| 8/19/2022 | 08/07/2022 | 8/7/2022 12:00:00 AM |
| 9/26/2022 | 09/18/2022 | 9/18/2022 12:00:00 AM |
| 10/14/2022 | 10/02/2022 | 10/2/2022 12:00:00 AM |
| 10/29/2022 | 10/16/2022 | 10/16/2022 12:00:00 AM |

Dans cet exemple, étant donné que la valeur period\_no de -1 a été utilisée comme argument de décalage dans la fonction weekstart(), la fonction commence par identifier la semaine au cours de laquelle les transactions ont lieu. Elle regarde ensuite une semaine avant et identifie la première milliseconde de cette semaine.

Diagramme de la fonction weekstart(), exemple period\_no

Diagramme de la fonction weekstart(), exemple period\_no

Diagramme de la fonction weekstart()weekstart(), exemple period\_no ![Diagramme montrant comment la fonction weekstart convertit la date de transaction en un horodatage pour la première milliseconde de la semaine de la transaction.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-period-no.png)

La transaction 8196 a eu lieu le 15 juin. La fonction weekstart() identifie que la semaine commence le 12 juin. Par conséquent, la semaine précédente a commencé le 5 juin à 12:00:00 AM ; il s'agit de la valeur renvoyée pour le champ previous\_week\_start.

## Exemple 3 – first\_week\_day

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

#### Script de chargement et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.

Le script de chargement contient le même jeu de données et le même scénario que ceux du premier exemple. Cependant, dans cet exemple, nous devons définir le mardi comme le premier jour de la semaine de travail.

Script de chargement

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

Transactions:
    Load
        *,
        weekstart(date,0,1) as start_of_week,
        timestamp(weekstart(date,0,1)) as start_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
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* date

* start\_of\_week

* start\_of\_week\_timestamp

Tableau de résultats

| date | start\_of\_week | start\_of\_week\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/04/2022 | 1/4/2022 12:00:00 AM |
| 1/19/2022 | 01/18/2022 | 1/18/2022 12:00:00 AM |
| 2/5/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 2/28/2022 | 02/22/2022 | 2/22/2022 12:00:00 AM |
| 3/16/2022 | 03/15/2022 | 3/15/2022 12:00:00 AM |
| 4/1/2022 | 03/29/2022 | 3/29/2022 12:00:00 AM |
| 5/7/2022 | 05/03/2022 | 5/3/2022 12:00:00 AM |
| 5/16/2022 | 05/10/2022 | 5/10/2022 12:00:00 AM |
| 6/15/2022 | 06/14/2022 | 6/14/2022 12:00:00 AM |
| 6/26/2022 | 06/21/2022 | 6/21/2022 12:00:00 AM |
| 7/9/2022 | 07/05/2022 | 7/5/2022 12:00:00 AM |
| 7/22/2022 | 07/19/2022 | 7/19/2022 12:00:00 AM |
| 7/23/2022 | 07/19/2022 | 7/19/2022 12:00:00 AM |
| 7/27/2022 | 07/26/2022 | 7/26/2022 12:00:00 AM |
| 8/2/2022 | 08/02/2022 | 8/2/2022 12:00:00 AM |
| 8/8/2022 | 08/02/2022 | 8/2/2022 12:00:00 AM |
| 8/19/2022 | 08/16/2022 | 8/16/2022 12:00:00 AM |
| 9/26/2022 | 09/20/2022 | 9/20/2022 12:00:00 AM |
| 10/14/2022 | 10/11/2022 | 10/11/2022 12:00:00 AM |
| 10/29/2022 | 10/25/2022 | 10/25/2022 12:00:00 AM |

Dans ce cas, étant donné que l'argument first\_week\_date égal à 1 est utilisé dans la fonction weekstart(), il définit le premier jour de la semaine comme étant le mardi.

Diagramme de la fonction weekstart(), exemple first\_week\_day

Diagramme de la fonction weekstart(), exemple first\_week\_day

Diagramme de la fonction weekstart()weekstart(), exemple first\_week\_day ![Diagramme montrant comment la fonction weekstart convertit la date de transaction en un horodatage pour la première milliseconde de la semaine de la transaction.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-first-week-day.png)

La transaction 8191 a eu lieu le 5 février. La fonction weekstart() identifie que le premier mardi avant cette date – et par conséquent le début de la semaine et la valeur renvoyée – était le 1er février à 12:00:00 AM.

## Exemple 4 – Exemple d'objet graphique

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

#### Script de chargement et expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.

Le script de chargement contient le même jeu de données et le même scénario que ceux du premier exemple.

Cependant, dans cet exemple, le même jeu de données est chargé dans l'application. Le calcul qui renvoie un horodatage correspondant au début de la semaine de réalisation des transactions est créé sous forme de mesure dans un objet graphique de l'application.

Script de chargement

```
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
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension : date.

Pour calculer le début de la semaine d'une transaction, ajoutez les mesures suivantes :

* =weekstart(date)

* =timestamp(weekstart(date))

Tableau de résultats

| date | start\_of\_week | start\_of\_week\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/02/2022 | 1/2/2022 12:00:00 AM |
| 1/19/2022 | 01/16/2022 | 1/16/2022 12:00:00 AM |
| 2/5/2022 | 01/30/2022 | 1/30/2022 12:00:00 AM |
| 2/28/2022 | 02/27/2022 | 2/27/2022 12:00:00 AM |
| 3/16/2022 | 03/13/2022 | 3/13/2022 12:00:00 AM |
| 4/1/2022 | 03/27/2022 | 3/27/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/16/2022 | 05/15/2022 | 5/15/2022 12:00:00 AM |
| 6/15/2022 | 06/12/2022 | 6/12/2022 12:00:00 AM |
| 6/26/2022 | 06/26/2022 | 6/26/2022 12:00:00 AM |
| 7/9/2022 | 07/03/2022 | 7/3/2022 12:00:00 AM |
| 7/22/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/23/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/27/2022 | 07/24/2022 | 7/24/2022 12:00:00 AM |
| 8/2/2022 | 07/31/2022 | 7/31/2022 12:00:00 AM |
| 8/8/2022 | 08/07/2022 | 8/7/2022 12:00:00 AM |
| 8/19/2022 | 08/14/2022 | 8/14/2022 12:00:00 AM |
| 9/26/2022 | 09/25/2022 | 9/25/2022 12:00:00 AM |
| 10/14/2022 | 10/09/2022 | 10/9/2022 12:00:00 AM |
| 10/29/2022 | 10/23/2022 | 10/23/2022 12:00:00 AM |

La mesure start\_of\_week est créée dans l'objet graphique via la fonction weekstart() et en transmettant le champ date comme argument de la fonction.

La fonction weekstart() identifie initialement la semaine de la valeur date, renvoyant un horodatage pour la première milliseconde de cette semaine-là.

Diagramme de la fonction weekstart(), exemple objet graphique

Diagramme de la fonction weekstart(), exemple objet graphique

Diagramme de la fonction weekstart()weekstart(), exemple objet graphique ![Diagramme montrant comment la fonction weekstart convertit la date de transaction en un horodatage pour la première milliseconde de la semaine de la transaction.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-chart-object.png)

La transaction 8191 a eu lieu le 5 février. La variable système FirstWeekDay définit le premier jour de la semaine comme étant un dimanche. La fonction weekstart() identifie que le premier dimanche avant le 5 février – et par conséquent le début de la semaine – était le 30 janvier. Par conséquent, la valeur start\_of\_week de cette transaction renvoie la première milliseconde de ce jour-là, à savoir, le 30 janvier à 12:00:00 AM.

## Exemple 5 – Scénario

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

#### Script de chargement et expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table appelée Payroll.

* Données constituées des ID des employés, des noms des employés et du salaire quotidien touché par chaque employé.

Les employés commencent à travailler le lundi et travaillent six jours par semaine. La variable système FirstWeekDay ne doit pas être modifiée.

L'utilisateur final souhaite un objet graphique qui affiche, par ID d'employé et nom d'employé, les salaires touchés au cours de la semaine jusqu'à la date du jour.

Script de chargement

```
Payroll: 
Load
*
Inline 
[
employee_id,employee_name,day_rate
182,Mark, $150
183,Deryck, $125
184,Dexter, $125
185,Sydney,$270
186,Agatha,$128
];
```

Résultats

Procédez comme suit :

1. Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

   * employee\_id

   * employee\_name

2. Ensuite, créez une mesure pour calculer les salaires touchés au cours de la semaine jusqu'à la date du jour :

   =if(today(1)-weekstart(today(1),0,0)&lt;7,(today(1)-weekstart(today(1),0,0))\*day\_rate,day\_rate\*6)

3. Définissez le Formatage des nombres des mesures sur Money (Devise).

Tableau de résultats

| employee\_id | employee\_name | =if(today(1)-weekstart(today(1),0,0)&lt;7,(today(1)-weekstart(today(1),0,0))\*day\_rate,day\_rate\*6) |
| --- | --- | --- |
| 182 | Mark | $600.00 |
| 183 | Deryck | $500.00 |
| 184 | Dexter | $500.00 |
| 185 | Sydney | $1080.00 |
| 186 | Agatha | $512.00 |

La fonction weekstart(), en utilisant la date d'aujourd'hui comme premier argument et 0 comme troisième argument, définit le lundi comme le premier jour de la semaine et renvoie la date de début de la semaine en cours. En soustrayant ce résultat de la date actuelle, l'expression renvoie alors le nombre de jours qui se sont écoulés jusqu'à présent cette semaine.

La condition évalue ensuite si cette semaine comptait plus de six jours. Si c'est le cas, la valeur day\_rate de l'employé est multipliée par 6 jours. Sinon, la valeur day\_rate est multipliée par le nombre de jours qui se sont déroulés jusqu'à ce jour cette semaine.