

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

 *núm WorkDays*   
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\_date < end\_date);
+ número inteiro negativo (quando start\_date > end\_date);
+ 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}}
```

![Tabela mostrando dados de funcionários agrupados por employee_id com valores agregados de dias trabalhados e bônus.](http://docs.aws.amazon.com/pt_br/quick/latest/userguide/images/addWorkDays-function-example.png)
