

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

`addWorkDays` adiciona ou subtrai um número designado de dias úteis a um determinado valor de data. A função retorna a data de um dia útil, que corresponde aos dias úteis designados após ou antes de um determinado valor de data de entrada. 

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

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

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

*initDate*  
Uma data válida não nula que atua como a data de início do cálculo.   
+ **Campo do conjunto de dados**: qualquer campo de `date` do conjunto de dados ao qual você está adicionando essa função.
+ **Função de data**: qualquer saída de data de outra função de `date`, por exemplo `parseDate`, `epochDate`, `addDateTime` e assim por diante.  
**Example**  

  ```
  addWorkDays(epochDate(1659484800), numWorkDays)
  ```
+ **Campos calculados** — Qualquer campo calculado rapidamente que retorna um `date` valor.  
**Example**  

  ```
  calcFieldStartDate = addDateTime(10, “DD”, startDate)
  addWorkDays(calcFieldStartDate, numWorkDays)
  ```
+ **Parâmetros** — Qualquer `datetime` parâmetro rápido.  
**Example**  

  ```
  addWorkDays($paramStartDate, numWorkDays)
  ```
+ Qualquer combinação dos valores dos argumentos acima indicados.

 *numWorkDays*   
Um número inteiro não NULO que atua como a data final do cálculo.   
+ **Literal**: um número inteiro literal digitado diretamente no editor de expressões.  
**Example**  

  ```
  ```
+ **Campo do conjunto de dados**: qualquer campo de data do conjunto de dados   
**Example**  

  ```
  ```
+ **Função ou cálculo escalar** — Qualquer função escalar rápida que retorna uma saída inteira de outra, por exemplo `decimalToInt``abs`, e assim por diante.  
**Example**  

  ```
  addWorkDays(initDate, decimalToInt(sqrt (abs(numWorkDays)) ) )
  ```
+ **Campo calculado** — Qualquer campo calculado rapidamente que retorna um `date` valor.  
**Example**  

  ```
  someOtherIntegerCalcField = (num_days * 2) + 12
  addWorkDays(initDate, someOtherIntegerCalcField)
  ```
+ **Parâmetro** — Qualquer `datetime` parâmetro rápido.  
**Example**  

  ```
  addWorkDays(initDate, $param_numWorkDays)
  ```
+ Qualquer combinação dos valores dos argumentos acima indicados.

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

Inteiro 

## Valores de saída
<a name="addWorkDays-function-output-type"></a>

Os valores de saída esperados incluem os seguintes:
+ número inteiro positivo (quando start\$1date < end\$1date);
+ número inteiro negativo (quando start\$1date > end\$1date);
+ NULL, quando um ou ambos os argumentos obtêm um valor nulo do `dataset field`.

## Erro de entrada
<a name="addWorkDays-function-errors"></a>

Valores de argumentos não permitidos causam erros, conforme mostrado nos exemplos a seguir.
+ Não é permitido usar um NULL literal como argumento na expressão.  
**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.
  ```
+ Não é permitido usar um literal de string como argumento, ou qualquer outro tipo de dados que não seja uma data, na expressão. No exemplo a seguir, a string **"2022-08-10"** parece uma data, mas na verdade é uma string. Para usá-la, você precisaria usar uma função que converta em um tipo de dados de 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.
  ```

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

Um número inteiro positivo como argumento `numWorkDays` produzirá uma data futura da data de entrada. Um número inteiro negativo como argumento `numWorkDays` produzirá uma data resultante no passado da data de entrada. Um valor zero para o argumento `numWorkDays` produz o mesmo valor da data de entrada, independentemente de ela cair em um dia útil ou em um fim de semana.

A função `addWorkDays` opera na granularidade: `DAY`. A precisão não pode ser preservada em nenhuma granularidade inferior ou superior ao nível `DAY`.

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

Vamos supor que haja um campo chamado `employmentStartDate` com os seguintes valores: 

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

Usando o campo acima e os cálculos a seguir, `addWorkDays` retorna os valores modificados, conforme mostrado abaixo:

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

O exemplo a seguir calcula o bônus total proporcional a ser pago a cada funcionário por dois anos, com base em quantos dias cada funcionário realmente trabalhou.

```
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/pt_br/quick/latest/userguide/images/addWorkDays-function-example.png)
