# inlunarweek - fonction de script et fonction de graphique

Cette fonction renvoie la valeur true si l'argument timestamp se trouve dans la semaine lunaire comprenant l'argument base\_date. Les semaines lunaires figurant dans QlikView sont définies en comptant le 1er janvier comme le premier jour de la semaine.

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

**Type de données renvoyé :** booléen

Arguments InLunarWeek

| 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é. |

`inlunarweek('12/01/2013', '14/01/2013',   0)`

Renvoie True. Car la valeur de timestamp, soit le 12/01/2013, tombe dans la semaine du 08/01/2013 au 14/01/2013.

`inlunarweek('12/01/2013', '07/01/2013',   0)`

Renvoie False. Car la date de référence base\_date, soit le 07/01/2013, tombe dans la semaine lunaire définie du 01/01/2013 au 07/01/2013.

`inlunarweek('12/01/2013', '14/01/2013',   -1)`

Renvoie False. Car la définition de la valeur de period\_no sur -1 entraîne le décalage de la semaine sur la semaine précédente, soit du 01/01/2013 au 07/01/2013.

`inlunarweek('07/01/2013', '14/01/2013',   -1)`

Renvoie True. Par comparaison avec l'exemple précédent, l'horodatage est compris dans la semaine prenant en compte le décalage en arrière.

`inlunarweek('11/01/2006', '08/01/2006',   0, 3)`

Renvoie False. Car la définition de la valeur de first\_week\_day sur 3 signifie que le début de l'année est calculé à partir du 04/01/2013. Par conséquent, la valeur de base\_date tombe dans la première semaine tandis que la valeur de timestamp tombe dans la semaine du 11/01/2013 au 17/01/2013.

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

Cet exemple permet de vérifier si une date de facture tombe dans la semaine décalée par rapport à la valeur de base\_date de quatre semaines.

`TempTable:` `LOAD RecNo() as InvID, * Inline [` `InvDate` `28/03/2012` `10/12/2012` `5/2/2013` `31/3/2013` `19/5/2013` `15/9/2013` `11/12/2013` `2/3/2014` `14/5/2014` `13/6/2014` `7/7/2014` `4/8/2014` `];` ` ` `InvoiceData:` `LOAD *,` `InLunarWeek(InvDate, '11/01/2013', 4) AS InLWeekPlus4` `Resident TempTable;`

`Drop table TempTable;`

La table résultante présente les dates initiales et une colonne contenant la valeur de retour de la fonction inlunarweek().

La fonction renvoie True pour la valeur de InvDate 5/2/2013, car la valeur de base\_date, soit le 11/01/2013, est décalée de quatre semaines et tombe ainsi dans la semaine du 5/02/2013 au 11/02/2013.

Résultats de l'exemple 6 :

| InvDate | InLWeekPlus4 |
| --- | --- |
| 28/03/2012 | 0 (False) |
| 10/12/2012 | 0 (False) |
| 5/2/2013 | -1 (True) |
| 31/3/2013 | 0 (False) |
| 19/5/2013 | 0 (False) |
| 15/9/2013 | 0 (False) |
| 11/12/2013 | 0 (False) |
| 2/3/2014 | 0 (False) |
| 14/5/2014 | 0 (False) |
| 13/6/2014 | 0 (False) |
| 7/7/2014 | 0 (False) |
| 4/8/2014 | 0 (False) |