# inlunarweek - función de script y de gráfico

Esta función devuelve verdadero si timestamp se encuentra dentro de la semana lunar que contiene a base\_date. Las semanas lunares en QlikView se definen contando 1 de enero como el primer día de la semana.

Sintaxis:

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

**Tipo de datos que devuelve:** Booleano

Argumentos:

Argumentos de InLunarWeek

| Argumento | Descripción |
| --- | --- |
| timestamp | La fecha que desee comparar con base\_date. |
| base\_date | La fecha que se utiliza para evaluar la semana lunar. |
| period\_no | La semana lunar puede desplazarse mediante period\_no; period\_no es un entero, en el que el valor 0 indica la semana lunar que contiene a base\_date. Los valores negativos en period\_no indican semanas lunares precedentes y los valores positivos indican semanas lunares subsiguientes. |
| first\_week\_day | Un desplazamiento que puede ser mayor que o menor que cero. Esto cambia el comienzo del año por el número especificado de días y/o fracciones de un día. |

Ejemplo 1:

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

Devuelve True. Porque el valor de timestamp, 12/01/2013 cae en la semana 08/01/2013 a 14/01/2013.

Ejemplo 2:

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

Devuelve False. Porque la fecha base\_date 07/01/2013 está en la semana lunar definida como 01/01/2013 a 07/01/2013.

Ejemplo 3:

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

Devuelve False. Porque especificar un valor de period\_no como -1 desplaza la semana a la semana previa, 01/01/2013 a 07/01/2013.

Ejemplo 4:

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

Devuelve True. Comparado con el ejemplo anterior, la fecha hora está en la semana posterior a tenerse en cuenta el desplazamiento hacia atrás.

Ejemplo 5:

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

Devuelve False. Porque especificar un valor para first\_week\_day de 3 significa que el inicio del año se calcula desde 04/01/2013, y por lo tanto el valor de base\_date cae en la primera semana, y el valor de timestamp cae en la semana de 11/01/2013 a 17/01/2013.

Ejemplo 6:

Añada el script de ejemplo a su documento y ejecútelo. A continuación, añada como mínimo los campos de la columna de resultados a una hoja de su documento para ver el resultado.

Este ejemplo comprueba si una fecha de facturación entra dentro de la semana desplazada desde el valor de base\_date en cuatro semanas.

`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 tabla resultante contiene las fechas originales y una columna con el valor de retorno de la función inlunarweek().

La función devuelve True para el valor de InvDate5/2/2013 porque el valor de base\_date, 11/01/2013, se desplaza en cuatro semanas y por lo tanto cae en la semana de 5/02/2013 a 11/02/2013.

Resultados del ejemplo 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) |