# inlunarweektodate Funzione per script e grafici

Questa funzione stabilisce se timestamp ricade all'interno della parte della settimana lunare fino a includere l'ultimo millisecondo di base\_date. Le settimane lunari in Qlik Sense sono definite contando il 1° gennaio come primo giorno della settimana e, a parte l'ultima settimana dell'anno, conterranno esattamente sette giorni.

Sintassi:

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

Tipo di dati restituiti: Boolean

Nota informatica

In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.

Schema esemplificativo della funzione `inlunarweektodate()`

Schema esemplificativo della funzione `inlunarweektodate()`

Schema esemplificativo della funzione `inlunarweektodate()`inlunarweektodate() ![Schema di esempio della funzione inlunarweektodate, che mostra le date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-overview.png)

La funzione `inlunarweektodate()` funge da punto finale della settimana lunare. In contrasto, la funzione `inlunarweek()` determina la settimana lunare in cui cade `base_date`. Ad esempio, se il `base_date` fosse il 5 gennaio, qualsiasi timestamp tra il 1 e il 5 gennaio restituirebbe un risultato booleano di `TRUE`, mentre le date del 6 e 7 gennaio e successive restituirebbero un risultato booleano di `FALSE`.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| timestamp | La data da confrontare con base\_date. |
| base\_date | La data utilizzata per valutare la settimana lunare. |
| period\_no | La settimana lunare può essere differita mediante period\_no. period\_no è un numero intero, in cui il valore 0 indica la settimana lunare che contiene base\_date. I valori negativi di period\_no indicano le settimane lunari precedenti, mentre i valori positivi indicano le settimane lunari successive. |
| first\_week\_day | Un differimento che può essere maggiore o minore di zero. Ciò modifica l'inizio dell'anno in base al numero specificato di giorni e/o frazioni di un giorno. |

## Quando usare inlunarweektodate

La funzione `inlunarweektodate()` restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un'espressione IF. La funzione `inlunarweektodate()` viene utilizzata quando l'utente desidera che il calcolo restituisca un'aggregazione o un calcolo, a seconda che la data valutata sia avvenuta in un particolare segmento della settimana in questione.

Ad esempio, la funzione `inlunarweektodate()` può essere utilizzata per identificare tutte le apparecchiature prodotte in una determinata settimana fino a una data specifica.

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `inlunarweektodate('01/12/2013', '01/13/2013',<br>						0)` | Restituisce `TRUE`, dato che il valore di `timestamp`, 01/12/2013, ricade nella parte della settimana da 01/08/2013 a 01/13/2013. |
| `inlunarweektodate('01/12/2013', '01/11/2013',<br>						0)` | Restituisce `FALSE`, poiché il valore di `timestamp` è successivo al valore di `base_date`, anche se le due date si trovano nella stessa settimana lunare prima di 01/12/2012. |
| `inlunarweektodate('01/12/2006', '01/05/2006',<br>						1)` | Restituisce `TRUE`. Specificando un lavoro pari a 1 per `period_no`, `base_date` slitta in avanti di una settimana, pertanto il valore di`timestamp` ricade nella parte della settimana lunare. |

La funzione `inlunarweektodate()` viene spesso utilizzata in combinazione con le seguenti funzioni:

Funzioni correlate

| Funzione | Interazione |
| --- | --- |
| [lunarweekname Funzione per script e grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | Questa funzione viene utilizzata per determinare il numero della settimana lunare dell'anno in cui si verifica una data inserita. |

## Impostazioni locali

Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/DD/YYYY. Il formato della data viene specificato nell'istruzione `SET DateFormat` nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi. Per ulteriori informazioni, vedere [Modifica delle impostazioni internazionali per applicazioni e script](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Le impostazioni regionali predefinite nelle applicazioni si basano sul profilo utente. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Cloud. Qlik Cloud verrà visualizzato nella stessa lingua del browser utilizzato.

Se si è un creatore di applicazioni, è possibile impostare la regione predefinita per le applicazioni che si creano. Per ulteriori informazioni, vedere [Regolazione delle impostazioni internazionali preferite per la creazione di app e script in Qlik Cloud Analytics](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Esempio 1 - Nessun argomento aggiuntivo

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati contenente un insieme di transazioni per il mese di gennaio, caricato in una tabella denominata `Transactions`. È utilizzata la variabile di sistema predefinita `DateFormat` MM/GG/AAAA.

* Creare un campo, `in_lunar_week_to_date`, che determina se le transazioni sono avvenute nella settimana lunare alla data del 10 gennaio.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_lunar_week_to_date`

Tabella dei risultati

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

Funzione `inlunarweektodate()`, senza argomenti aggiuntivi

Funzione `inlunarweektodate()`, senza argomenti aggiuntivi

Funzione `inlunarweektodate()`inlunarweektodate(), senza argomenti aggiuntivi ![Esempio di utilizzo della funzione inlunarweektodate che mostra l'intervallo di date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-no-additional-arguments.png)

Il campo `in_lunar_week_to_date` viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione `inlunarweektodate()` e trasferendo il campo `date`, una data con hard coding per il 10 gennaio come `base_date`, e un offset di 0 come argomenti della funzione.

Poiché le settimane lunari iniziano il 1° gennaio, il 10 gennaio cadrebbe nella settimana lunare che inizia l'8 gennaio; e poiché stiamo utilizzando la funzione `inlunarweektodate()`, quella settimana lunare finirebbe il 10. Pertanto, tutte le transazioni che si verificano tra queste due date di gennaio restituiranno un valore booleano di `TRUE`. Questo viene convalidato nella tabella dei risultati.

## Esempio 2 - period\_no

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Lo script di caricamento contiene lo stesso set di dati e lo stesso scenario del primo esempio. Tuttavia, in questo esempio, il compito è quello di creare un campo, `2_lunar_weeks_later`, che determini se le transazioni sono avvenute o meno due settimane dopo la settimana lunare alla data del 1° gennaio.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `2_lunar_weeks_later`

Tabella dei risultati

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

Funzione `inlunarweektodate()`, esempio period\_no

Funzione `inlunarweektodate()`, esempio period\_no

Funzione `inlunarweektodate()`inlunarweektodate(), esempio period\_no ![Esempio di utilizzo della funzione inlunarweektodate che mostra l'intervallo di date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-period-no.png)

In questo caso, la funzione `inlunarweektodate()` determina che la settimana lunare fino al 10 gennaio equivale a tre giorni (8, 9, 10 gennaio). Poiché è stato utilizzato un valore `period_no` di 2 come argomento di offset, questa settimana lunare è spostata di 14 giorni. Pertanto, la settimana lunare di tre giorni comprende il 22, 23 e 24 gennaio. Qualsiasi transazione effettuata tra il 22 e il 24 gennaio restituirà un risultato booleano di `TRUE`.

## Esempio 3 - first\_week\_day

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

* È utilizzata la variabile di sistema predefinita `DateFormat` MM/GG/AAAA.

* Un argomento `first_week_date` di 3. In questo modo le settimane lunari iniziano il 3 gennaio.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_lunar_week_to_date`

Tabella dei risultati

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

Funzione `inlunarweektodate()`, esempio first\_week\_day

Funzione `inlunarweektodate()`, esempio first\_week\_day

Funzione `inlunarweektodate()`inlunarweektodate(), esempio first\_week\_day ![Esempio di utilizzo della funzione inlunarweektodate che mostra l'intervallo di date per le quali la funzione restituirà un valore TRUE, date le informazioni in ingresso.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-first-week-date.png)

In questo caso, poiché nella funzione `inlunarweek()` viene utilizzato l'argomento 3 `the first_week_date`, la prima settimana lunare andrà dal 3 al 10 gennaio. Poiché il 10 gennaio è anche il `base_date`, qualsiasi transazione che cade tra queste due date restituirà un valore booleano di `TRUE`.

## Esempio 4 – Esempio di oggetto grafico

#### Script di caricamento ed espressione del grafico

Panoramica

Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Lo script di caricamento contiene lo stesso set di dati e lo stesso scenario del primo esempio.

Tuttavia, in questo esempio, il set di dati invariato viene caricato nell'applicazione. Il calcolo che determina se le transazioni sono avvenute nella stessa settimana lunare fino al 10 gennaio viene creato come misura in un oggetto grafico dell'applicazione.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: date.

Creare la seguente misura:

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

Tabella dei risultati

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

Funzione inlunarweektodate(), esempio di oggetto grafico

Funzione inlunarweektodate(), esempio di oggetto grafico

Funzione inlunarweektodate()inlunarweektodate(), esempio di oggetto grafico ![Schema esemplificativo dell'uso della funzione inlunarweektodate, che utilizza un'espressione grafica per determinare se una transazione avviene nella settimana lunare che contiene il 10 gennaio.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-chart-object.png)

La misura in\_lunar\_week\_to\_date viene creata nell'oggetto grafico utilizzando la funzione inlunarweektodate() e passando al campo data, una data con hard-coding per il 10 gennaio come nostro base\_date, e un offset di 0 come argomenti della funzione.

Poiché le settimane lunari iniziano il 1° gennaio, il 10 gennaio cadrebbe nella settimana lunare che inizia l'8 gennaio. Inoltre, dal momento che stiamo utilizzando la funzione inlunarweektodate(), la settimana lunare terminerebbe il 10. Pertanto, tutte le transazioni che si verificano tra queste due date di gennaio restituiranno un valore booleano di TRUE. Questo viene convalidato nella tabella dei risultati.

## Esempio 5 - Scenario

#### Script di caricamento ed espressioni del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella chiamata Products.

* Informazioni composte da ID prodotto, data di produzione e prezzo di costo.

Si è determinato che, a causa di un errore delle apparecchiature, i prodotti fabbricati nella settimana lunare del 12 gennaio erano difettosi. Il problema è stato risolto il 13 gennaio. L'utente finale desidera un oggetto grafico che visualizzi, per settimana, se i prodotti fabbricati sono "difettosi" o "non difettosi" e il costo dei prodotti fabbricati quella settimana.

Script di caricamento

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

Risultati

Procedere come indicato di seguito:

1. Caricare i dati e aprire un foglio. Creare una nuova tabella.

2. Creare una dimensione per visualizzare i nomi delle settimane:

   =weekname(manufacture\_date)

3. Quindi, creare una dimensione che utilizzi la funzione inlunarweektodate() per identificare quali prodotti sono difettosi e quali non lo sono:

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

4. Creare una misura per sommare il valore cost\_price dei prodotti:

   =sum(cost\_price)

5. Impostare la Formattazione numero della misura su Denaro.

Tabella dei risultati

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

La funzione inlunarweektodate() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per coloro che restituiscono il valore booleano TRUE, contrassegna i prodotti come ‘Defective’. Per qualsiasi prodotto che restituisce il valore FALSE, e quindi non è stato realizzato nella settimana lunare fino al 12 gennaio, contrassegna i prodotti come ‘Faultless’.