# inlunarweektodate Función de script y de gráfico

Esta función halla si timestamp se encuentra dentro de la parte de la semana lunar hasta e incluido el último milisegundo de base\_date. Las semanas lunares en Qlik Sense se definen contando el 1 de enero como el primer día de la semana y, aparte de la última semana del año, contendrán exactamente siete días.

Sintaxis:

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

Tipo de datos que devuelve: Booleano

Nota informativa

En Qlik Sense, el valor booleano verdadero viene representado por -1 y el valor falso está representado por 0.

Ejemplo de diagrama de la función `inlunarweektodate()`

Ejemplo de diagrama de la función `inlunarweektodate()`

Ejemplo de diagrama de la función `inlunarweektodate()`inlunarweektodate() ![Diagrama de ejemplo de la función inlunarweektodate, que muestra las fechas para las que la función devolverá un valor de TRUE, dada la información de entrada.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-overview.png)

La función `inlunarweektodate()` actúa como punto final de la semana lunar. A diferencia de esta, la función `inlunarweek()` determina en qué semana lunar cae `base_date`. Por ejemplo, si la fecha `base_date` fuera el 5 de enero, cualquier fecha-hora entre el 1 y el 5 de enero arrojaría un resultado booleano de `TRUE`, mientras que las fechas del 6 y 7 de enero y posteriores arrojarían un resultado booleano de `FALSE`.

Argumentos

| Argumento | Descripción |
| --- | --- |
| timestamp | La fecha que desea 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. |

## Cuándo utilizar inlunarweektodate

La función `inlunarweektodate()` devuelve un resultado booleano. Normalmente, este tipo de función se utiliza como condición en una expresión condicional. La función `inlunarweektodate()` se utilizará cuando el usuario quiera que el cálculo devuelva una agregación o un cálculo, dependiendo de si la fecha evaluada ocurrió durante un segmento particular de la semana en cuestión.

Por ejemplo, la función `inlunarweektodate()` se puede utilizar para identificar todos los equipos fabricados en una determinada semana hasta e incluida una fecha en particular.

Ejemplos de funciones

| Ejemplo | Resultado |
| --- | --- |
| `inlunarweektodate('01/12/2013', '01/13/2013',<br>						0)` | Devuelve `TRUE`, porque el valor de `timestamp`, 01/12/2013, cae en la parte de la semana del 01/08/2013 al 01/13/2013. |
| `inlunarweektodate('01/12/2013', '01/11/2013',<br>						0)` | Devuelve `FALSE`, porque el valor de `timestamp`es posterior al valor de `base_date`, aunque las dos fechas están en la misma semana lunar anterior a 01/12/2012. |
| `inlunarweektodate('01/12/2006', '01/05/2006',<br>						1)` | Devuelve `TRUE`. Especificar un valor de 1 para `period_no` desplaza a `base_date` una semana hacia delante, de modo que el valor de `timestamp` cae en la parte de la semana lunar. |

La función `inlunarweektodate()` se utiliza a menudo en combinación con las siguientes funciones:

Funciones relacionadas

| Función | Interacción |
| --- | --- |
| [lunarweekname Función de script y de gráfico](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | Esta función sirve para indicar el número de semana lunar del año en el que ocurre una fecha de entrada. |

## Configuraciones regionales

A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia `SET DateFormat` de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos. Para más información, vea [Modificar la configuración regional para aplicaciones y scripts](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

La configuración regional predeterminada en las aplicaciones se basa en el perfil de usuario. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Cloud. Qlik Cloud se mostrará en el mismo idioma que esté utilizando su navegador.

Si es un creador de aplicaciones, puede establecer la región por defecto para las aplicaciones que cree. Para más información, vea [Establecer sus configuraciones regionales preferidas para crear apps y scripts en Analítica de Qlik Cloud](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Ejemplo 1: sin argumentos adicionales

#### Script de carga y resultados

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que contiene un conjunto de transacciones del mes de enero, el cual se carga en una tabla denominada `Transactions`. Se utiliza la variable predefinida del sistema `DateFormat`: MM/DD/AAAA.

* Cree un campo, in\_lunar\_week\_to\_date, que determine qué transacciones se realizaron en la semana lunar hasta la fecha del 10 de enero.``

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `in_lunar_week_to_date`

Tabla de resultados

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

La función `inlunarweektodate()`, sin argumentos adicionales

La función `inlunarweektodate()`, sin argumentos adicionales

La función `inlunarweektodate()`inlunarweektodate(), sin argumentos adicionales ![Ejemplo de uso de la función inlunarweektodate, que muestra el rango de fechas para las que la función devolverá un valor de TRUE, dada la información de entrada.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-no-additional-arguments.png)

El campo `in_lunar_week_to_date` se crea en la sentencia load anterior utilizando la función `inlunarweektodate()` e introduciendo el campo `date`, una marca de tiempo codificada para el 10 de enero como nuestra `base_date` y un desplazamiento de 0 como argumentos de la función.

Debido a que las semanas lunares comienzan el 1 de enero, el 10 de enero caería en la semana lunar que comienza el 8 de enero; y debido a que estamos usando la función `inlunarweektodate()`, esa semana lunar terminaría el día 10. Por lo tanto, cualquier transacción que ocurra entre esas dos fechas en enero devolvería un valor booleano de `TRUE`. Esto se valida en la tabla de resultados.

## Ejemplo 2: period\_no

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

#### Script de carga y resultados

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación en una nueva pestaña.

El script de carga contiene el mismo conjunto de datos y escenario que el primer ejemplo. Sin embargo, en este ejemplo, la tarea es crear un campo, `2_lunar_weeks_later`, que determine si las transacciones se realizaron o no dos semanas después de la semana lunar hasta la fecha del 1 de enero.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `2_lunar_weeks_later`

Tabla de resultados

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

La función `inlunarweektodate()`, ejemplo de period\_no

La función `inlunarweektodate()`, ejemplo de period\_no

La función `inlunarweektodate()`inlunarweektodate(), ejemplo de period\_no ![Ejemplo de uso de la función inlunarweektodate, que muestra el rango de fechas para las que la función devolverá un valor de TRUE, dada la información de entrada.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-period-no.png)

En este caso, la función `inlunarweektodate()` determina que la semana lunar hasta el 10 de enero equivale a tres días (8, 9 y 10 de enero). Dado que se utilizó un `period_no` de 2 como argumento del desplazamiento, esta semana lunar se desplaza 14 días. Por lo tanto, esto define que la semana lunar de tres días incluye el 22, 23 y 24 de enero. Cualquier transacción que tenga lugar entre el 22 y el 24 de enero devolverá un resultado booleano de `TRUE`.

## Ejemplo 3: first\_week\_day

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

#### Script de carga y resultados

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.

* Se utiliza la variable predefinida del sistema `DateFormat`: DD/MM/AAAA.

* Un argumento `first_week_date` de 3. Esto establece que las semanas lunares comiencen el 3 de enero.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `in_lunar_week_to_date`

Tabla de resultados

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

La función `inlunarweektodate()`, ejemplo de first\_week\_day

La función `inlunarweektodate()`, ejemplo de first\_week\_day

La función `inlunarweektodate()`inlunarweektodate(), ejemplo de first\_week\_day ![Ejemplo de uso de la función inlunarweektodate, que muestra el rango de fechas para las que la función devolverá un valor de TRUE, dada la información de entrada.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-first-week-date.png)

En este caso, como se usa un argumento `the first_week_date` de 3 en la función `inlunarweek()`, la primera semana lunar será del 3 al 10 de enero. Debido a que el 10 de enero también es la `base_date`, cualquier transacción que se encuentre entre estas dos fechas devolverá un valor booleano de `TRUE`.

## Ejemplo 4: ejemplo de objeto gráfico

#### Script de carga y expresión de gráfico

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación, en una nueva pestaña.

El script de carga contiene el mismo conjunto de datos y escenario que el primer ejemplo.

Sin embargo, en este ejemplo, el conjunto de datos sin modificar se carga en la aplicación. El cálculo que determina si las transacciones tuvieron lugar en la semana lunar hasta el 10 de enero se crea como una medida en un objeto gráfico de la aplicación.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:date.

Cree la siguiente medida:

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

Tabla de resultados

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

La función inlunarweektodate(), ejemplo de objeto gráfico

La función inlunarweektodate(), ejemplo de objeto gráfico

La función inlunarweektodate()inlunarweektodate(), ejemplo de objeto gráfico ![Diagrama de ejemplo de uso de la función inlunarweektodate, utilizando una expresión de gráfico que determina si una transacción tiene lugar en la semana lunar que contiene el 10 de enero.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-chart-object.png)

La medida in\_lunar\_week\_to\_date se crea en el objeto gráfico utilizando la función inlunarweektodate() e introduciendo el campo de fecha, una marca de tiempo codificada para el 10 de enero como base\_date y un desplazamiento de 0 como argumentos de la función.

Como las semanas lunares comienzan el 1 de enero, el 10 de enero caería en la semana lunar que comienza el 8 de enero. Además, como estamos usando la función inlunarweektodate(), esa semana lunar terminaría el día 10. Por lo tanto, cualquier transacción que ocurra entre esas dos fechas en enero devolvería un valor booleano de TRUE. Esto se valida en la tabla de resultados.

## Ejemplo 5: Escenario

#### Script de carga y expresiones de gráfico

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla denominada Products.

* Información que consiste en la identificación del producto, la fecha de fabricación y el precio de fabricación.

Se ha identificado que, debido a un error en el equipo, los productos que se fabricaron en la semana lunar del 12 de enero eran defectuosos. El problema se resolvió el 13 de enero. Al usuario final le gustaría tener un objeto gráfico que muestre, por semana, el estado de los productos fabricados, si son "defectuosos" o "sin defectos", y el costo de los productos fabricados en esa semana.

Script de carga

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

Resultados

Haga lo siguiente:

1. Cargue los datos y abra una hoja. Cree una nueva tabla.

2. Cree una dimensión para mostrar los nombres de las semanas:

   =weekname(manufacture\_date)

3. A continuación, cree una dimensión que utilice la función inlunarweektodate() para identificar cuáles de los productos son defectuosos y cuáles son sin defectos:

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

4. Cree una medida para sumar el cost\_price de los productos:

   =sum(cost\_price)

5. Establezca el Formato numérico de la medida en Moneda.

Tabla de resultados

| =lunarweekname(fecha\_fabricación) | =if(InLunarWeekToDate(fecha\_fabricación,makedate(2022,01,12),0),'Defectuoso',Sin defectos') | =Sum(precio\_coste) |
| --- | --- | --- |
| 2022/01 | Sin defectos | $142.67 |
| 2022/02 | Defectuoso | $320.88 |
| 2022/02 | Sin defectos | $141.82 |
| 2022/03 | Sin defectos | $214.64 |
| 2022/04 | Sin defectos | $147.46 |
| 2022/05 | Sin defectos | $248.12 |

La función inlunarweektodate() devuelve un valor booleano al evaluar las fechas de fabricación de cada uno de los productos. Para aquellos que devuelven un valor booleano de TRUE, marca los productos como ‘Defective’. Para cualquier producto que devuelva un valor de FALSE, y por tanto no realizados en la semana lunar hasta el 12 de enero inclusive, marca los productos como Sin defectos (‘Faultless’).