

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.

 *numWorkDays*   
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\$1date < end\$1date)
+ Número entero negativo (cuando start\$1date > end\$1date)
+ 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
```

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