# inlunarweektodate Fonction de script et de graphique

Cette fonction détermine si l'argument timestamp se trouve dans la partie de la semaine lunaire jusqu'à la dernière milliseconde spécifiée dans base\_date. Dans Qlik Sense, les semaines lunaires sont définies en comptant le 1er janvier comme le premier jour de la semaine et, à l'exception de la dernière semaine de l'année, elles contiendront exactement sept jours.

Syntaxe :

InLunarWeekToDate (timestamp, base\_date, period\_no [, first\_week\_day])

Type de données renvoyé : Booléen

Note Informations

Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.

Exemple de diagramme de la fonction `inlunarweektodate()`

Exemple de diagramme de la fonction `inlunarweektodate()`

Exemple de diagramme de la fonction `inlunarweektodate()`inlunarweektodate() ![Exemple de diagramme de la fonction inlunarweektodate, montrant les dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-overview.png)

La fonction `inlunarweektodate()` joue le rôle de point final de la semaine lunaire. En revanche, la fonction `inlunarweek()` détermine la semaine lunaire de la `base_date`. Par exemple, si la `base_date` était le 5 janvier, tout horodatage entre le 1er janvier et le 5 janvier renverrait un résultat booléen `TRUE`, tandis que les dates du 6 et du 7 janvier et les dates ultérieures renverraient un résultat booléen `FALSE`.

Arguments

| Argument | Description |
| --- | --- |
| timestamp | Date à comparer à base\_date. |
| base\_date | Date utilisée pour évaluer la semaine lunaire. |
| period\_no | Il est possible de décaler la semaine lunaire à l'aide de l'argument period\_no. period\_no est un entier, où la valeur 0 indique la semaine lunaire comprenant l'argument base\_date. Les valeurs négatives spécifiées pour period\_no indiquent les semaines lunaires passées tandis que les valeurs positives désignent les semaines lunaires à venir. |
| first\_week\_day | Décalage pouvant être supérieur ou inférieur à zéro. Il modifie le début de l'année du nombre de jours et/ou de fractions de jour spécifié. |

## Cas d'utilisation de inlunarweektodate

La fonction `inlunarweektodate()` renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression IF. La fonction `inlunarweektodate()` serait utilisée lorsque l'utilisateur souhaite que le calcul renvoie une agrégation ou un calcul, suivant que la date évaluée a eu lieu ou non pendant un segment donné de la semaine en question.

Par exemple, la fonction `inlunarweektodate()` peut être utilisée pour identifier l'ensemble des équipements fabriqués au cours d'une semaine donnée jusqu'à une date spécifique incluse.

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `inlunarweektodate('01/12/2013', '01/13/2013',<br>						0)` | Renvoie `TRUE`, car la valeur de l'`timestamp`, 01/12/2013, tombe pendant la partie de la semaine du 01/08/2013 au 01/13/2013. |
| `inlunarweektodate('01/12/2013', '01/11/2013',<br>						0)` | Renvoie `FALSE`, car la valeur de l'`timestamp` est postérieure à la valeur de la `base_date`, même si les deux dates font partie de la même semaine lunaire précédant le 01/12/2012. |
| `inlunarweektodate('01/12/2006', '01/05/2006',<br>						1)` | Renvoie `TRUE`. La définition de la valeur 1 pour `period_no` a pour effet de retarder la date de référence `base_date` d'une semaine. De ce fait, la valeur de `timestamp` tombe dans la partie de la semaine lunaire. |

La fonction `inlunarweektodate()` est souvent utilisée en combinaison avec les fonctions suivantes :

Fonctions associées

| Fonction | Interaction |
| --- | --- |
| [lunarweekname Fonction de script et de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | Cette fonction permet de déterminer le nombre de semaines lunaires de l'année pendant lesquelles tombe une date d'entrée. |

## 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).

## Exemple 1 - aucun argument supplémentaire

#### 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 le mois de janvier, chargé dans une table appelée `Transactions`. La variable système `DateFormat` par défaut MM/DD/YYYY est utilisée.

* Créez un champ, `in_lunar_week_to_date`, qui détermine les transactions qui ont eu lieu pendant la semaine lunaire jusqu'à la date du 10 janvier.

Script de chargement

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

Transactions:
    Load
        *,
        inlunarweektodate(date,'01/10/2022', 0) as in_lunar_week_to_date
        ;
Load
*
Inline 
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/2022',76.11
];
```

Résultats

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

* `date`

* `in_lunar_week_to_date`

Tableau de résultats

| date | in\_lunar\_week\_to\_date |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | 0 |
| 1/10/2022 | -1 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | 0 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

Fonction `inlunarweektodate()`, aucun argument supplémentaire

Fonction `inlunarweektodate()`, aucun argument supplémentaire

Fonction `inlunarweektodate()`inlunarweektodate(), aucun argument supplémentaire ![Exemple d'utilisation de la fonction inlunarweektodate montrant la plage de dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-no-additional-arguments.png)

Le champ `in_lunar_week_to_date` est créé dans l'instruction preceding load via la fonction `inlunarweektodate()` et en transmettant le champ `date`, une date codée en dur pour le 10 janvier comme notre `base_date` et un décalage égal à 0 comme arguments de la fonction.

Étant donné que les semaines lunaires commencent le 1er janvier, le 10 janvier tomberait pendant la semaine lunaire qui commence le 8 janvier ; et, parce que nous utilisons la fonction `inlunarweektodate()`, cette semaine lunaire se terminerait donc le 10. Par conséquent, toutes les transactions qui se produisent entre ces deux dates de janvier renverraient une valeur booléenne `TRUE`. Cela est validé dans le tableau de résultats.

## Exemple 2 - period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweektodate.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, la tâche consiste à créer un champ, `2_lunar_weeks_later`, qui détermine si les transactions ont eu lieu ou non deux semaines après la semaine lunaire jusqu'à la date du 1er janvier.

Script de chargement

```
SET DateFormat='MM/DD/YYYY';
Transactions:
    Load
        *,
        inlunarweektodate(date,'01/10/2022', 2) as [2_lunar_weeks_later]
        ;
Load
*
Inline
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/2022',76.11
];
```

Résultats

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

* `date`

* `2_lunar_weeks_later`

Tableau de résultats

| date | 2\_lunar\_weeks\_later |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | 0 |
| 1/10/2022 | 0 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | -1 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

Fonction `inlunarweektodate()`, exemple period\_no

Fonction `inlunarweektodate()`, exemple period\_no

Fonction `inlunarweektodate()`inlunarweektodate(), exemple period\_no ![Exemple d'utilisation de la fonction inlunarweektodate montrant la plage de dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-period-no.png)

Dans cet exemple, la fonction `inlunarweektodate()` détermine que la semaine lunaire jusqu'au 10 janvier compte trois jours (les 8, 9 et 10 janvier). Étant donné qu'un argument `period_no` égal à 2 a été utilisé comme argument de décalage, cette semaine lunaire est décalée de 14 jours. Par conséquent, cette semaine lunaire de trois jours inclut les 22, 23 et 24 janvier. Toute transaction effectuée entre le 22 janvier et le 24 janvier renverra un résultat booléen `TRUE`.

## Exemple 3 - first\_week\_day

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

* La variable système `DateFormat` par défaut MM/DD/YYYY est utilisée.

* Argument `first_week_date` égal à 3. Cela détermine le début des semaines lunaires le 3 janvier.

Script de chargement

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0,3) as in_lunar_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/2022',76.11
];
```

Résultats

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

* `date`

* `in_lunar_week_to_date`

Tableau de résultats

| date | in\_lunar\_week\_to\_date |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | -1 |
| 1/10/2022 | -1 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | 0 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

Fonction `inlunarweektodate()`, exemple first\_week\_day

Fonction `inlunarweektodate()`, exemple first\_week\_day

Fonction `inlunarweektodate()`inlunarweektodate(), exemple first\_week\_day ![Exemple d'utilisation de la fonction inlunarweektodate montrant la plage de dates pour lesquelles la fonction renverra une valeur TRUE en fonction des informations d'entrée.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-first-week-date.png)

Dans cet exemple, étant donné que l'argument `the first_week_date` égal à 3 est utilisé dans la fonction `inlunarweek()`, la première semaine lunaire se déroulera du 3 janvier au 10 janvier. Étant donné que le 10 janvier est également la `base_date`, toute transaction qui tombe entre ces deux dates renverra une valeur booléenne `TRUE`.

## Exemple 4 - exemple objet graphique

#### 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 détermine si les transactions ont eu lieu pendant la semaine lunaire jusqu'au 10 janvier est créé sous forme de mesure dans un objet graphique de l'application.

Script de chargement

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

Transactions: 
Load
*
Inline
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/2022',76.11
];
```

Résultats

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

Créez la mesure suivante :

=inlunarweektodate(date,'01/10/2022', 0)

Tableau de résultats

| date | =inlunarweektodate(date,'01/10/2022', 0) |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | 0 |
| 1/10/2022 | -1 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | 0 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

Fonction inlunarweektodate(), exemple objet graphique

Fonction inlunarweektodate(), exemple objet graphique

Fonction inlunarweektodate()inlunarweektodate(), exemple objet graphique ![Exemple de diagramme montrant l'utilisation de la fonction inlunarweektodate, avec une expression de graphique déterminant si une transaction a lieu au cours de la semaine lunaire contenant le 10 janvier.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-chart-object.png)

La mesure in\_lunar\_week\_to\_date est créée dans l'objet graphique via la fonction inlunarweektodate() et en transmettant le champ date, une date codée en dur pour le 10 janvier comme notre base\_date et un décalage égal à 0 comme arguments de la fonction.

Étant donné que les semaines lunaires commencent le 1er janvier, le 10 janvier tomberait pendant la semaine lunaire qui commence le 8 janvier . De plus, parce que nous utilisons la fonction inlunarweektodate(), cette semaine lunaire se terminerait le 10. Par conséquent, toutes les transactions qui se produisent entre ces deux dates de janvier renverraient une valeur booléenne TRUE. Cela est validé dans le tableau de résultats.

## Exemple 5 - scénario

#### Script de chargement et expressions 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 Products.

* Informations incluant l'ID du produit, la date de fabrication et le prix de revient.

Il a été identifié que, suite à une erreur d'équipement, des produits fabriqués pendant la semaine lunaire du 12 janvier étaient défectueux. Le problème a été résolu le 13 janvier. L'utilisateur final souhaite un objet graphique qui affiche, par semaine, l'état des produits fabriqués 'defective' (défectueux) ou 'faultless' (corrects) et le coût des produits fabriqués cette semaine-là.

Script de chargement

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';

Products:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
8188,'01/02/2022 12:22:06',37.23
8189,'01/05/2022 01:02:30',17.17
8190,'01/06/2022 15:36:20',88.27
8191,'01/08/2022 10:58:35',57.42
8192,'01/09/2022 08:53:32',53.80
8193,'01/10/2022 21:13:01',82.06
8194,'01/11/2022 00:57:13',40.39
8195,'01/12/2022 09:26:02',87.21
8196,'01/13/2022 15:05:09',95.93
8197,'01/14/2022 18:44:57',45.89
8198,'01/15/2022 06:10:46',36.23
8199,'01/16/2022 06:39:27',25.66
8200,'01/17/2022 10:44:16',82.77
8201,'01/18/2022 18:48:17',69.98
8202,'01/26/2022 04:36:03',76.11
8203,'01/27/2022 08:07:49',25.12
8204,'01/28/2022 12:24:29',46.23
8205,'01/30/2022 11:56:56',84.21
8206,'01/30/2022 14:40:19',96.24
8207,'01/31/2022 05:28:21',67.67
];
```

Résultats

Procédez comme suit :

1. Chargez les données et ouvrez une feuille. Créez un tableau.

2. Créez une dimension pour afficher les noms de semaine :

   =weekname(manufacture\_date)

3. Ensuite, créez une dimension qui utilise la fonction inlunarweektodate() pour identifier les produits défectueux et les produits corrects :

   =if(inlunarweektodate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless')

4. Créez une mesure pour additionner les valeurs cost\_price des produits :

   =sum(cost\_price)

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

Tableau de résultats

| =lunarweekname(manufacture\_date) | =if(InLunarWeekToDate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless') | =Sum(cost\_price) |
| --- | --- | --- |
| 2022/01 | Faultless | $142.67 |
| 2022/02 | Defective | $320.88 |
| 2022/02 | Faultless | $141.82 |
| 2022/03 | Faultless | $214.64 |
| 2022/04 | Faultless | $147.46 |
| 2022/05 | Faultless | $248.12 |

La fonction inlunarweektodate() renvoie une valeur booléenne lors de l'évaluation des dates de fabrication de chacun des produits. Les produits qui renvoient une valeur booléenne TRUE sont identifiés comme ‘Defective’. Tout produit renvoyant une valeur FALSE et par conséquent non fabriqué au cours de la semaine lunaire jusqu'au 12 janvier est identifié comme ‘Faultless’.