# Funciones de tiempo

Conjunto de [Funciones de fórmula ](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas)que nos permiten operar con datos tipo tiempo.

## addDaysToDateTime

Devuelve el tiempo incrementado los días.

`addDaysToDateTime(tiempo, días)`

#### **Parámetros**

* **tiempo**

  Expresión de tipo tiempo.
* **días**

  Número de días a incrementar.

#### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`addDaysToDateTime(TIEMPO, 10)` = 30/01/2009 12:20:54

## addMSecondsToDateTime

Devuelve el tiempo incrementado los milisegundos.

`addMSecondsToDateTime(tiempo, milisegundos)`

#### **Parámetros**

* **tiempo**

  Expresión de tipo tiempo al que queremos sumar los milisegundos pasados como parámetro.
* **milisegundos**

  Milisegundos que queremos sumar al dato tiempo pasado como parámetro.

#### **Ejemplo**

TIEMPO = 12/02/2009 12:12:12.000

`addMSecondsToDateTime(TIEMPO, 999 )` = 12/02/2009 12:12:12.999

## addMonthsToDateTime

Devuelve el tiempo incrementado los meses.

`addMonthsToDateTime(tiempo, meses)`

#### **Parámetros**

* **tiempo**

  Expresión de tipo tiempo.
* **meses**

  Número de meses a incrementar.

#### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`addMonthsToDateTime(TIEMPO, 12)` = 20/01/2010 12:20:54

## addSecondsToDateTime

Devuelve el tiempo incrementado los segundos. Incrementa al dato de tipo tiempo los segundos que pasamos como parámetro.

`addSecondsToDateTime(tiempo, días)`

#### Parámetros

* **tiempo**

  Expresión de tipo tiempo.
* **días**

  Número de segundos a incrementar.

#### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`addSecondsToDateTime(TIEMPO, 10)` = 20/01/2009 12:21:04

## addYearsToDateTime

Devuelve el tiempo incrementado los años.

`addYearsToDateTime(tiempo, meses)`

#### **Parámetros**

* **tiempo**

  Expresión de tipo tiempo.
* **años**

  Número de años a incrementar.

#### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`addYearsToDateTime(TIEMPO, 1)` = 20/01/2010 12:20:54

## currentDateTime

Devuelve el tiempo actual. Devuelve una expresión de tipo con la fecha y hora del instante en que se evalúa.

`currentDateTime()`

#### **Parámetros**

* No tiene.

#### **Ejemplo**

`currentDateTime()` = 20/01/2009 16:30:30.123

## currentUTCDateTime

Devuelve el tiempo actual en tiempo universal (UTC).

`currentUTCDateTime()`

#### **Parámetros**

* No tiene.

#### **Ejemplo**

`currentUTCDateTime()` = 20/01/2009 11:35:07

## dateTimeIsValid

Devuelve true (1) si el tiempo pasado como parámetro es válido y false (0) si es incorrecto.&#x20;

`dateTimeIsValid(tiempo)`

#### Parámetros

* **tiempo**

  Expresión de tipo tiempo que queremos comprobar que sea correcta.

### **Ejemplo**

TIEMPO = 33/44/2009 39:32:32

`dateTimeIsValid(TIEMPO)` = 0

## dateTimeToDate

Obtiene la fecha de un tiempo.

`dateTimeToDate(tiempo)`

#### **Parámetros**

* **Tiempo**

  Expresión de tipo tiempo.

### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`dateTimeToDate(TIEMPO)` = 20/01/2009

## dateTimeToLocale

Devuelve el tiempo local según la zona horaria que se pasa como parámetro en forma de diferencia de horas con respecto al tiempo universal (UTC).

`dateTimeToLocale(tiempo, zonaHoraria)`

#### **Parámetros**

* **tiempo**

  Expresión de tipo tiempo en tiempo universal (UTC) que vamos a calcular para el tiempo local en función de la zona horaria que pasamos como parámetro.
* **zonaHoraria**

  Zona horaria expresada como un número que indica la diferencia en horas correspondiente con respecto al tiempo universal (UTC).

#### **Ejemplo**

TIEMPO = 20/01/2009 16:30:30:123

`dateTimeToLocale(TIEMPO, -1 )` = 20/01/2009 17:30:30:123

## dateTimeToString

Devuelve el tiempo como una cadena según las indicaciones del formato. Sigue el estándar **Unicode Common Locale Data Repository**.

`dateTimeToString(fechaHora, cadenaFormato)`

#### **Parámetros**

* **fechaHora**

  Dato de tipo tiempo que queremos formatear.
* **cadenaFormato**

  Cadena de formato que especifica como devolver la cadena con la fecha y la hora.

  * **Formato:**
    * **Día**: d (1-31) dd (01-31) ddd (lu.-do.) dddd (lunes-domingo).
    * **Mes**: M (1-12) MM (01-12) MMM (ene.-dic.) MMMM (enero-diciembre).
    * **Año**: yy (00-99) yyyy (0000-9999).
    * **Horas**: h (0-23, 1-12 AM/PM) hh (00-23, 01-12 AM/PM) H (0-23) HH (00-23).
    * **Minutos**: m (0-59) mm (00-59).
    * **Segundos**: s (0-59) ss (00-59) z (0-999).
    * **Milisegundos**: z (000-999).
    * **Periodos**: AP (AM/PM) ap (am/pm).

{% hint style="info" %}
La abreviatura del día o del mes será distinta según la plataforma. Windows, macOS e iOS usan la información del sistema, Linux y Android hacen uso del estándar [ICU](https://es.wikipedia.org/wiki/ICU).

Por ejemplo si el día es miércoles y usamos la cadena para devolver el nombre del día abreviado, según el sistema podrá devolvernos: "mi.", "mié" o "mié.".
{% endhint %}

### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`dateTimeToString(TIEMPO, "dd/MMM/yyyy h")` = 20/ene./2009 12

## dateTimeToTime

Devuelve la hora de un tiempo.

`dateTimeToTime(tiempo)`

#### **Parámetros**

* **Tiempo**

  Expresión de tipo tiempo.

#### **Ejemplo**

TIEMPO = 20/01/2009 12:20:54

`dateTimeToTime(TIEMPO)` = 12:20:54

## dateTimeToTimeZone

Permite obtener una fecha y hora para una zona horaria concreta.

`dateTimeToTimeZone(tiempoUTC, zonaHoraria)`

#### Parámetros

* **tiempoUTC**

  Expresión de tipo tiempo UTC.
* ZonaHoraria

  Cadena con la zona horaria en la que queremos obtener el resultado. Se debe resolver con el formato `país/región`. Ver [enumeraciones de zonas horarias](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas/funciones-estandar/funciones-de-tiempo/zonas-horarias).

#### **Ejemplo**

TIEMPO = 28/03/2025 7:47

`dateTimeToTimeZone(TIEMPO, "America/Indianapolis")` = 28/03/2025 3:47

## dateTimeToUTC

Devuelve el tiempo en tiempo universal (UTC) según la zona horaria que se pasa como parámetro en forma de diferencia de horas con respecto al tiempo universal.

`dateTimeToUTC(tiempo, zonaHoraria)`

#### **Parámetros**

* **tiempo**

  Expresión de tipo tiempo local que queremos calcular en tiempo universal (UTC) en función de la zona horaria que pasamos como parámetro.
* **zonaHoriaria**

  Zona horaria expresada como un número que indica la diferencia en horas correspondiente con respecto al tiempo universal (UTC).

#### **Ejemplo**

TIEMPO = 20/01/2009 16:30:30:123

`dateTimeToUTC(TIEMPO, 1 )` = 20/01/2009 17:30:30:123

## mSecondsTo

Devuelve los milisegundos entre dos tiempos (negativo si es dataTimeHasa es menor que dataTimeDesde). Esta función tiene un límite de 24 días; es decir, no calcula diferentes entre tiempos superiores a 24 días.

`mSecondsTo(dateTimeDesde, dateTimeHasta)`

#### **Parámetros**

* **dataTimeDesde**

  Dato inicial de tipo tiempo.
* **dataTimeHasta**

  Dato final de tipo tiempo.

Si el dato final es menor al dato inicial, el resultado será negativo.

### **Ejemplos**

TIEMPO\_INI = 20/01/2009 17:13:00:00, TIEMPO\_FINAL = 20/01/2009 17:13:01:00

`mSecondsTo(TIEMPO_INI, TIEMPO_FINAL )` = 1000

TIEMPO\_INI = 20/01/2009 17:13:01:00, TIEMPO\_FIN = 20/01/2009 17:13:00:00

`mSecondsTo(TIEMPO_INI, TIEMPO_FIN)` = -1000

## secondsTo

Devuelve los segundos entre dos datos tipo tiempo que indicamos como parámetro. Si el segundo parámetro es menor que el primero, el resultado será negativo.

`secondsTo(dateTimeDesde, dateTimeHasta)`

#### **Parámetros**

* **dateTimeDesde**

  Expresión de tipo tiempo con el dato inicial.
* **dateTimeHasta**

  Expresión de tipo tiempo con el dato final.

#### **Ejemplo**

TIEMPO\_INI = 20/01/2009 16:30:30:123, TIEMPO\_FIN = 20/01/2009 16:30:40:123

`secondsTo(TIEMPO_INI, TIEMPO_FIN)` = 10

## setDateTime

Crea una expresión de tipo tiempo.

`setDateTime(fecha, hora)`

#### **Parámetros**

* **fecha**

  Dato de tipo fecha.
* **hora**

  Dato de tipo hora.

#### **Ejemplo**

FECHA = 20/01/2009, HORA = 17:21:52

`setDateTime(FECHA, HORA )` = 20/01/2009 17:21:52

## stringToDateTime

Extrae el tiempo de una cadena según las indicaciones del formato.

`stringToDateTime(cadena, cadenaFormato)`

#### **Parámetros**

* **cadena**

  Cadena que contiene la fecha y hora.
* **cadenaFormato**

  Cadena de formato que especifica como extraer la fecha y hora de la cadena.

  * **Formato:**
    * **Horas**: h (0-23, 1-12 AM/PM) hh (00-23, 01-12 AM/PM) H (0-23) HH (00-23).
    * **Minutos**: m (0-59) mm (00-59).
    * **Segundos**: s (0-59) ss (00-59) z (0-999) zzz (000-999).
    * **Periodos**: AP (AM/PM) ap (am/pm).
    * **Día**: d (1-31) dd (01-31) ddd (lu.-do.) dddd (lunes-domingo).
    * **Mes**: M (1-12) MM (01-12) MMM (ene.-dic.) MMMM (enero-diciembre).
    * **Año**: yy (00-99) yyyy (0000-9999).

El resto de caracteres en la cadena de formato serán tratados como texto. También los caracteres que estén entre comillas simples (‘) en la cadena de formato serán tratados como texto, lo que nos permite tratar los caracteres específicos de formato (h, hh, H, HH, m, mm, etc.) como texto.

Si la cadena no se corresponde con el formato especificado la devolverá una hora nula, no devolverá nada. Esto puede incluir casos en los que se espere ceros por la izquierda u otras incoherencias con el formato esperado.

### **Ejemplos**

`stringToDateTime("02/09/2019 18:11", "dd/MM/yyyy hh:mm")`

`stringToDateTime("2-09-2019 18:11", "d-MM-yyyy hh:mm")`
