

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

`addWorkDays` suma o resta un número designado de días laborables a un valor de fecha determinado. La función devuelve la fecha de un día laborable, es decir, un día laborable designado anterior o posterior a un valor de fecha de entrada determinado. 

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

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

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

*initDate*  
Una fecha válida que no sea NULL y que actúe como fecha de inicio del cálculo.   
+ **Campo de conjunto de datos**: cualquier campo `date` del conjunto de datos al que vaya a agregar esta función.
+ **Función de fecha**: cualquier salida de fecha de otra función `date`, por ejemplo, `parseDate`, `epochDate`, `addDateTime`, etc.  
**Example**  

  ```
  addWorkDays({{epochDate(1659484800)}}, {{numWorkDays}})
  ```
+ **Campos calculados**: cualquier campo calculado rápidamente que devuelva un `date` valor.  
**Example**  

  ```
  calcFieldStartDate = addDateTime({{10}}, “{{DD}}”, {{startDate}})
  addWorkDays({{calcFieldStartDate}}, {{numWorkDays}})
  ```
+ **Parámetros**: cualquier `datetime` parámetro rápido.  
**Example**  

  ```
  addWorkDays(${{paramStartDate}}, {{numWorkDays}})
  ```
+ Cualquier combinación de los valores de los argumentos indicados anteriormente.

 *número WorkDays*   
Una número entero que no sea NULL y que actúe como fecha de finalización del cálculo.   
+ **Literal**: número entero que se escribe directamente en el editor de expresiones.  
**Example**  

  ```
  ```
+ **Campo de conjunto de datos**: cualquier campo de fecha del conjunto de datos.   
**Example**  

  ```
  ```
+ **Función escalar o cálculo**: cualquier función rápida escalar que devuelva una salida entera de otra, por ejemplo `decimalToInt``abs`, y así sucesivamente.  
**Example**  

  ```
  addWorkDays({{initDate}}, {{decimalToInt(sqrt (abs(numWorkDays)) )}} )
  ```
+ **Campo calculado: cualquier campo** calculado rápidamente que devuelva un `date` valor.  
**Example**  

  ```
  someOtherIntegerCalcField = {{(num_days * 2) + 12}}
  addWorkDays({{initDate}}, {{someOtherIntegerCalcField}})
  ```
+ **Parámetro**: cualquier `datetime` parámetro rápido.  
**Example**  

  ```
  addWorkDays({{initDate}}, ${{param_numWorkDays}})
  ```
+ Cualquier combinación de los valores de los argumentos indicados anteriormente.

## Tipo de devolución
<a name="addWorkDays-function-return-type"></a>

Entero 

## Valores de salida
<a name="addWorkDays-function-output-type"></a>

Los valores de salida esperados incluyen los siguientes:
+ Número entero positivo (cuando start\_date < end\_date)
+ Número entero negativo (cuando start\_date > end\_date)
+ NULL cuando uno o ambos argumentos obtienen un valor nulo de `dataset field`.

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

Los valores de argumento no permitidos provocan errores, como se muestra en los siguientes ejemplos.
+ No se permite utilizar un valor NULL literal como argumento en la expresión.  
**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.
  ```
+ No se permite utilizar una cadena literal como argumento, ni cualquier otro tipo de datos que no sea una fecha, en la expresión. En el ejemplo siguiente, la cadena **"2022-08-10"** tiene el aspecto de una fecha, pero en realidad es una cadena. Para usarla, tendría que usar una función que se convierta en un tipo de datos de fecha.  
**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.
  ```

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

Un entero positivo como argumento `numWorkDays` producirá una fecha en el futuro de la fecha de entrada. Un entero negativo como argumento `numWorkDays` producirá una fecha resultante anterior a la fecha de entrada. Un valor cero para el argumento `numWorkDays` produce el mismo valor que la fecha de entrada, independientemente de que caiga en un día laborable o en un fin de semana.

La función `addWorkDays` funciona con el siguiente grado de detalle: `DAY`. La precisión no se puede preservar con un grado de detalle inferior o superior al nivel `DAY`.

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

Supongamos que hay un campo denominado `employmentStartDate` con los siguientes valores: 

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

Usando el campo anterior y los siguientes cálculos, `addWorkDays` devuelve los valores modificados como se muestra a continuación:

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

En el siguiente ejemplo se calcula la bonificación prorrateada total que se pagará a cada empleado durante 2 años en función del número de días que cada empleado haya trabajado realmente.

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

![Tabla que muestra los datos de los empleados agrupados por emplee_id con valores agregados de los días trabajados y las bonificaciones.](http://docs.aws.amazon.com/es_es/quick/latest/userguide/images/addWorkDays-function-example.png)
