> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.danaconnect.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Agregar funciones de fecha dentro de las plantillas de email utilizando usando VTL

En este artículo, te explicamos cómo utilizar las **funciones de fecha** dentro de las plantillas de email utilizando **VTL (Velocity Template Language)** en DANAconnect. Las funciones de fecha te permiten manipular, calcular y formatear fechas dinámicamente, basadas en las variables de la lista de contactos, como `$s{fechaInicioPromocion}` o `$s{fechaVencimiento}`.

## ¿Qué son las Funciones de Fecha?

Las funciones de fecha en VTL te permiten realizar operaciones sobre fechas extraídas directamente de la base de datos de DANAconnect. Puedes utilizarlas para:
- **Formatear fechas** desde la base de datos de contactos.
- **Sumar o restar días, meses o años** a las fechas guardadas.
- **Comparar fechas** de la base de datos o crear fechas relativas.

## Casos de Uso Comunes

### 1. Formatear Fechas

Es posible que necesites formatear una fecha de la base de datos para que aparezca de manera más legible. Puedes hacerlo con el método `DateTool.format()`.

**Ejemplo:**

```html
#set( $fechaFormateada = $dateTool.format("dd 'de' MMMM 'de' yyyy", $s{fechaInicioPromocion}) )
Fecha de inicio de la promoción: $fechaFormateada
```

**Resultado:**

```html
Fecha de inicio de la promoción: 25 de enero de 2024
```

### 2. Obtener la Fecha Actual

Si deseas trabajar con la fecha actual, puedes hacerlo utilizando `$dateTool.get()` sin ningún parámetro adicional.

**Ejemplo:**

```html
La fecha de hoy es: $dateTool.get("yyyy-MM-dd")
```

**Resultado:**

```html
La fecha de hoy es: 2024-01-25
```

### 3. Sumar o Restar Días a una Fecha

Puedes sumar días a una fecha de la base de datos de contactos, como `$s{fechaVencimiento}`, utilizando `addToDate()`.

**Ejemplo:**
Si deseas sumar 7 días a la fecha de vencimiento:

```html
#set( $fechaFutura = $dateTool.addToDate($s{fechaVencimiento}, 7, "day") )
Nueva fecha de vencimiento: $dateTool.format("dd/MM/yyyy", $fechaFutura)
```

**Resultado:**

```html
Nueva fecha de vencimiento: 01/02/2024
```

### 4. Restar Días de una Fecha

Para restar días, puedes usar `subtractFromDate()` con una variable de la base de datos como `$s{fechaInicioPromocion}`.

**Ejemplo:**

```html
#set( $fechaPasada = $dateTool.subtractFromDate($s{fechaInicioPromocion}, 5, "day") )
Fecha de inicio modificada: $dateTool.format("dd/MM/yyyy", $fechaPasada)
```

**Resultado:**

```html
Fecha de inicio modificada: 20/01/2024
```

### 5. Comparar Fechas

Puedes comparar dos fechas de la base de datos, por ejemplo, `$s{fechaVencimiento}` y la fecha actual, para definir acciones basadas en si una fecha ha pasado.

**Ejemplo:**

```html
#if( $dateTool.isBefore($dateTool.get(), $s{fechaVencimiento}) )
  La fecha de vencimiento aún no ha pasado.
#else
  La fecha de vencimiento ya ha pasado.
#end
```

**Resultado:**

```html
La fecha de vencimiento aún no ha pasado.
```

### 6. Fecha Relativa (Hoy, Mañana, Próxima Semana)

Puedes generar fechas relativas, como calcular el día de mañana a partir de la fecha actual.

**Ejemplo:**

```html
Fecha de hoy: $dateTool.get("dd/MM/yyyy")
Mañana será: $dateTool.addToDate($dateTool.get(), 1, "day")
```

**Resultado:**

```html
Fecha de hoy: 25/01/2024
Mañana será: 26/01/2024
```

## Ejemplos Prácticos

### Recordatorio de Pago Próximo

```html
Recuerda que tu pago vence el: $dateTool.format("dd 'de' MMMM 'de' yyyy", $s{fechaVencimiento})
```

**Resultado:**

```html
Recuerda que tu pago vence el: 01 de febrero de 2024
```

### Crear Fechas Dinámicas para Plazos de Promociones

```html
#set( $fechaFinPromocion = $dateTool.addToDate($s{fechaInicioPromocion}, 10, "day") )
Promoción válida hasta: $dateTool.format("dd/MM/yyyy", $fechaFinPromocion)
```

**Resultado:**

```html
Promoción válida hasta: 04/02/2024
```

## Conclusión

Las funciones de fecha en VTL te permiten manipular y formatear fechas según las necesidades de cada proceso. Al utilizar las variables de la base de datos de DANAconnect, como `$s{fechaVencimiento}` o `$s{fechaInicioPromocion}`, puedes personalizar mensajes dinámicos de manera automatizada, basados en datos clave de tu lista de contactos. 

Estas herramientas son especialmente útiles para comunicar plazos de vencimiento, recordatorios y fechas de inicio o finalización de promociones, ajustadas a cada usuario en tiempo real.
