# networkdays Funzione per script e grafici

La funzione networkdays restituisce il numero di giorni lavorativi (dal lunedì al venerdì) compresi tra e inclusi in start\_date e end\_date, tenendo in considerazione qualsiasi eventuale valore di festività holiday nel calendario.

Sintassi:

networkdays (start\_date, end\_date [, holiday])

Tipo di dati restituiti: numero intero

Schema del calendario che visualizza l'intervallo di date restituito dalla funzione networkdays

Schema del calendario che visualizza l'intervallo di date restituito dalla funzione networkdays

Schema del calendario che visualizza l'intervallo di date restituito dalla funzione networkdays ![Aggiungere testo qui](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-general-calendar.png)

La funzione `networkdays` presenta le seguenti limitazioni:

* Non esiste un metodo per modificare i giorni lavorativi. In altre parole, non c'è modo di modificare la funzione per le regioni o le situazioni che comportano un lavoro diverso dal lunedì al venerdì.

* Il parametro `holiday` deve essere una costante stringa. Le espressioni non sono accettate.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| start\_date | La data di inizio da valutare. |
| end\_date | La data di fine da valutare. |
| holiday | Periodi di vacanza da escludere dai giorni lavorativi. Una vacanza è definita come una stringa di data costante. È possibile specificare più periodi di vacanza, separati da virgole.<br><br>Esempio: `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## Quando usare networkdays

La funzione `networkdays()` viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi il numero di giorni lavorativi che intercorrono tra due date. Ad esempio, se un utente desidera calcolare il salario totale che verrà percepito da un dipendente con contratto PAYE (pay-as-you-earn).

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `networkdays ('12/19/2013', '01/07/2014')` | Restituisce 14. In questo esempio, le festività non vengono prese in considerazione. |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013')` | Restituisce 12. In questo esempio, vengono presi in considerazione i giorni festivi 12/25/2013 e 12/26/2013. |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014')` | Restituisce 10. In questo esempio, vengono presi in considerazione due periodi di festività. |

## 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 – Esempio di base

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

* Un set di dati contenente gli ID dei progetti, le date di inizio e di fine. Queste informazioni vengono caricate in una tabella denominata `Projects`.

* Il campo della data fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

* La creazione di un campo aggiuntivo, `net_work_days`, per calcolare il numero di giorni lavorativi coinvolti in ogni progetto.

Script di caricamento

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

Projects:
    Load
        *,
        networkdays(start_date,end_date) as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Risultati

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

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabella dei risultati

| id | data\_inizio | data\_fine | giorni\_lavorativi\_netti |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 18/01/2022 | 12 |
| 2 | 10/02/2022 | 17/02/2022 | 6 |
| 3 | 05/17/2022 | 05/07/2022 | 36 |
| 4 | 01/06/2022 | 12/06/2022 | 8 |
| 5 | 10/08/2022 | 26/08/2022 | 13 |

Poiché non ci sono festività programmate (che sarebbero state presenti nel terzo argomento della funzione `networkdays()`), la funzione sottrae il valore `start_date` da `end_date`, così come tutti i fine settimana, per calcolare il numero di giorni lavorativi tra le due date.

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (senza giorni festivi)

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (senza giorni festivi)

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (senza giorni festivi) ![Schema del calendario per il mese di agosto, che mostra i giorni di lavoro per il progetto dal set di dati con ID 5. Qui sono evidenziati tutti i giorni della settimana (lunedì-venerdì) dal 10 al 26 agosto 2022, con il sabato e la domenica esclusi.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-basic.png)

Il calendario qui sopra illustra visivamente il progetto con un valore `id` di 5. Il progetto 5 inizia mercoledì 10 agosto 2022 e termina il 26 agosto 2022. Ignorando tutti i sabati e le domeniche, sono presenti 13 giorni lavorativi tra queste due date.

## Esempio 2 – Singolo giorno festivo

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

* Il campo della data fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

* La creazione di un campo aggiuntivo, `net_work_days`, per calcolare il numero di giorni lavorativi coinvolti in ogni progetto.

In questo esempio, il 19 agosto 2022 è previsto un giorno di vacanza.

Script di caricamento

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

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/19/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Risultati

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

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabella dei risultati

| id | data\_inizio | data\_fine | giorni\_lavorativi\_netti |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 18/01/2022 | 12 |
| 2 | 10/02/2022 | 17/02/2022 | 6 |
| 3 | 05/17/2022 | 05/07/2022 | 36 |
| 4 | 01/06/2022 | 12/06/2022 | 8 |
| 5 | 10/08/2022 | 26/08/2022 | 12 |

La singola vacanza programmata viene inserita come terzo argomento della funzione `networkdays()`.

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (con un giorno festivo)

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (con un giorno festivo)

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (con un giorno festivo) ![Schema del calendario per il mese di agosto, che mostra i giorni di lavoro per il progetto dal set di dati con ID 5. Qui sono evidenziati tutti i giorni della settimana (lunedì-venerdì) dal 10 al 26 agosto 2022, con l'eccezione del 19 agosto 2022 (festivo), escluso.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-single-holiday.png)

Il calendario qui sopra illustra visivamente il progetto 5, dimostrando questo adattamento per includere il giorno di vacanza. Questa vacanza si verifica durante il progetto 5, venerdì 19 agosto 2022. Di conseguenza, il valore `net_work_days` totale del progetto 5 diminuisce di un giorno, passando da 13 a 12 giorni.

## Esempio 3 – Vacanze multiple

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

* Il campo della data fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

* La creazione di un campo aggiuntivo, `net_work_days`, per calcolare il numero di giorni lavorativi coinvolti in ogni progetto.

Tuttavia, in questo esempio sono previsti quattro giorni di vacanza, dal 18 al 21 agosto 2022.

Script di caricamento

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

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/18/2022','08/19/2022','08/20/2022','08/21/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Risultati

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

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabella dei risultati

| id | data\_inizio | data\_fine | giorni\_lavorativi\_netti |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 18/01/2022 | 12 |
| 2 | 10/02/2022 | 17/02/2022 | 6 |
| 3 | 05/17/2022 | 05/07/2022 | 36 |
| 4 | 01/06/2022 | 12/06/2022 | 8 |
| 5 | 10/08/2022 | 26/08/2022 | 11 |

I quattro giorni di vacanza programmati vengono inseriti come elenco separato da virgole, a partire dal terzo argomento della funzione `networkdays()`.

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (con più giorni di vacanza)

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (con più giorni di vacanza)

Schema di calendario che evidenzia i giorni di lavoro per il progetto 5 (con più giorni di vacanza) ![Schema del calendario per il mese di agosto, che mostra i giorni di lavoro per il progetto dal set di dati con ID 5. Qui sono evidenziati tutti i giorni della settimana (lunedì-venerdì) dal 10 al 26 agosto 2022, con l'eccezione del 18 e del 19 agosto 2022 (festivi), esclusi.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-multiple-holidays.png)

Il calendario qui sopra illustra visivamente il progetto 5, dimostrando questo adattamento per includere i giorni di vacanza. Questo periodo di ferie programmate si verifica durante il progetto 5, con due giorni di giovedì e venerdì. Di conseguenza, il valore totale `net_work_days` del progetto 5 diminuisce da 13 a 11 giorni.

## Esempio 4 – Singolo giorno di vacanza

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

#### Script di caricamento ed espressione del grafico

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 ricavato dal primo esempio.

* Il campo della data fornito nel formato della variabile di sistema DateFormat (MM/GG/AAAA).

Il 19 agosto 2022 è previsto un giorno di vacanza.

Tuttavia, in questo esempio, il set di dati invariato viene caricato nell'applicazione. Il campo net\_work\_days viene calcolato come misura in un oggetto grafico.

Script di caricamento

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

Projects:
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Risultati

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

* id

* start\_date

* end\_date

Creare la seguente misura:

= networkdays(start\_date,end\_date,’08/19/2022’)

Tabella dei risultati

| id | data\_inizio | data\_fine | giorni\_lavorativi\_netti |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 18/01/2022 | 12 |
| 2 | 10/02/2022 | 17/02/2022 | 6 |
| 3 | 05/17/2022 | 05/07/2022 | 36 |
| 4 | 01/06/2022 | 12/06/2022 | 8 |
| 5 | 10/08/2022 | 26/08/2022 | 12 |

La singola vacanza programmata viene inserita come terzo argomento della funzione networkdays().

Schema del calendario che mostra i giorni di lavoro netti con una singola festività (oggetto grafico)

Schema del calendario che mostra i giorni di lavoro netti con una singola festività (oggetto grafico)

Schema del calendario che mostra i giorni di lavoro netti con una singola festività (oggetto grafico) ![Schema del calendario per il mese di agosto, che mostra i giorni di lavoro per il progetto dal set di dati con ID 5. Qui sono evidenziati tutti i giorni della settimana (lunedì-venerdì) dal 10 al 26 agosto 2022, con l'eccezione del 19 agosto 2022 (festivo), escluso.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-chart-single-holiday.png)

Il calendario qui sopra illustra visivamente il progetto 5, dimostrando questo adattamento per includere il giorno di vacanza. Questa vacanza si verifica durante il progetto 5, venerdì 19 agosto 2022. Di conseguenza, il valore net\_work\_days totale del progetto 5 diminuisce di un giorno, passando da 13 a 12 giorni.