

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# addWorkDays
<a name="addWorkDays-function"></a>

`addWorkDays` aggiunge o sottrae un determinato numero di giorni lavorativi a un determinato valore di data. La funzione restituisce una data per un giorno lavorativo, che corrisponde a un determinato giorno lavorativo dopo o prima di un determinato valore di data di input. 

## Sintassi
<a name="addWorkDays-function-syntax"></a>

```
addWorkDays(initDate, numWorkDays)
```

## Arguments (Argomenti)
<a name="addWorkDays-function-arguments"></a>

*initDate*  
Una data valida non NULL che funge da data di inizio del calcolo.   
+ **Campo del set di dati**: qualsiasi campo `date` del set di dati a cui si sta aggiungendo questa funzione.
+ **Funzione Data**: qualsiasi data emessa da un'altra funzione `date`, ad esempio `parseDate`, `epochDate`, `addDateTime` e così via.  
**Example**  

  ```
  addWorkDays(epochDate(1659484800), numWorkDays)
  ```
+ **Campi calcolati**: qualsiasi campo calcolato rapidamente che restituisce un `date` valore.  
**Example**  

  ```
  calcFieldStartDate = addDateTime(10, “DD”, startDate)
  addWorkDays(calcFieldStartDate, numWorkDays)
  ```
+ **Parametri**: qualsiasi `datetime` parametro Quick.  
**Example**  

  ```
  addWorkDays($paramStartDate, numWorkDays)
  ```
+ Qualsiasi combinazione dei valori degli argomenti sopra indicati.

 *numWorkDays*   
Una data valida non NULL che funge da data di fine del calcolo.   
+ **Letterale**: un valore letterale intero digitato direttamente nell'editor delle espressioni.  
**Example**  

  ```
  ```
+ **Campo del set di dati**: qualsiasi campo di data del set di dati   
**Example**  

  ```
  ```
+ **Funzione o calcolo scalare**: qualsiasi funzione scalare Quick che restituisce un output intero da un'altra, ad esempio `decimalToInt``abs`, e così via.  
**Example**  

  ```
  addWorkDays(initDate, decimalToInt(sqrt (abs(numWorkDays)) ) )
  ```
+ **Campo calcolato: qualsiasi campo** calcolato in modo rapido che restituisce un valore. `date`  
**Example**  

  ```
  someOtherIntegerCalcField = (num_days * 2) + 12
  addWorkDays(initDate, someOtherIntegerCalcField)
  ```
+ **Parametro**: qualsiasi `datetime` parametro Quick.  
**Example**  

  ```
  addWorkDays(initDate, $param_numWorkDays)
  ```
+ Qualsiasi combinazione dei valori degli argomenti sopra indicati.

## Tipo restituito
<a name="addWorkDays-function-return-type"></a>

Numero intero 

## Valori di output
<a name="addWorkDays-function-output-type"></a>

I valori di output previsti includono:
+ Numero intero positivo (quando start\$1date < end\$1date)
+ Numero intero negativo (quando start\$1date > end\$1date)
+ NULL quando uno o entrambi gli argomenti ottengono un valore nullo dal `dataset field`.

## Errori di input
<a name="addWorkDays-function-errors"></a>

I valori degli argomenti non consentiti causano errori, come illustrato negli esempi seguenti.
+ L'utilizzo di un valore letterale NULL come argomento nell'espressione non è consentito.  
**Example**  

  ```
  addWorkDays(NULL, numWorkDays) 
  ```  
**Example**  

  ```
  Error
  At least one of the arguments in this function does not have correct type. 
  Correct the expression and choose Create again.
  ```
+ L'utilizzo di una stringa letterale come argomento o di qualsiasi altro tipo di dati diverso dalla data nell'espressione non è consentito. Nell'esempio seguente, la stringa **"2022-08-10"** ha l'aspetto di una data, ma in realtà è una stringa. Per utilizzarla, è necessario utilizzare una funzione che converta in un tipo di dati di data.  
**Example**  

  ```
  addWorkDays("2022-08-10", 10)
  ```  
**Example**  

  ```
  Error
  Expression addWorkDays("2022-08-10", numWorkDays) for function addWorkDays has 
  incorrect argument type addWorkDays(String, Number). 
  Function syntax expects Date, Integer.
  ```

## Esempio
<a name="addWorkDays-function-example"></a>

Un numero intero positivo come l'argomento `numWorkDays` produrrà una data futura della data di input. Un numero intero negativo come l'argomento `numWorkDays` produrrà una data risultante successiva alla data di input. Un valore zero per l'argomento `numWorkDays` restituisce lo stesso valore della data di input indipendentemente dal fatto che ricada in un giorno lavorativo o in un fine settimana.

La funzione `addWorkDays` funziona con la granularità: `DAY`. La precisione non può essere preservata con alcuna granularità inferiore o superiore al livello `DAY`.

```
addWorkDays(startDate, endDate)
```

Supponiamo che esista un campo denominato `employmentStartDate` con i seguenti valori: 

```
2022-08-10 2022-08-06 2022-08-07 
```

Utilizzando il campo precedente e i seguenti calcoli, `addWorkDays` restituisce i valori modificati come illustrato di seguito:

```
addWorkDays(employmentStartDate, 7)

2022-08-19 
2022-08-16 
2022-08-16 

addWorkDays(employmentStartDate, -5)

2022-08-02 
2022-08-01 
2022-08-03 

addWorkDays(employmentStartDate, 0)

2022-08-10 
2022-08-06 
2022-08-07
```

L'esempio seguente calcola il bonus totale proporzionale da versare a ciascun dipendente per 2 anni in base al numero di giorni effettivamente lavorati da ciascun dipendente.

```
last_day_of_work = addWorkDays(employment_start_date, 730)
total_days_worked = netWorkDays(employment_start_date, last_day_of_work)
total_bonus = total_days_worked * bonus_per_day
```

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/quick/latest/userguide/images/addWorkDays-function-example.png)
