# Funciones de horas

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

## addMSecondsToHour

Devuelve la hora incrementada los milisegundos.

### Sintaxis

`addMSecondsToHour(hora, milisegundos)`

### Parámetros

#### **hora**

Expresión de tipo hora a la que queremos sumar los milisegundos. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

#### **milisegundos**

Milisegundos a sumar a la hora

### Ejemplo

HORA = 13:25:05:121\
`addMSecondsToHour( HORA, 10 )` = 13:25:05:131

## addSecondsToHour

Devuelve la hora incrementada los segundos.

### Sintaxis

`addSecondsToHour(hora, segundos)`

### Parámetros

#### **hora**

Expresión de tipo hora a la que queremos sumar los segundos. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

#### **segundos**

Segundos a sumar a la hora

### Ejemplo

HORA = 13:25:05:121\
`addSecondsToHour( HORA, 10 )` = 13:25:15:121

## currentTime

Devuelve la hora actual

### Sintaxis

`currentTime()`

### Parámetros

No tiene.

### Ejemplo

`currentTime()` = 17:08:01

## hour

Devuelve las horas (0 a 23) de la hora

### Sintaxis

`hour(hora)`

### Parámetros

#### **hora**

Expresión de tipo hora cuyo dato horas queremos obtener. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

### Ejemplo

HORA = 20:19:08\
`hour(HORA)` = 20

## mSecond

Devuelve los milisegundos (0 a 999) de la hora.

### Sintaxis

`mSecond(hora)`

### Parámetros

#### **hora**

Expresión de tipo hora cuyo dato milisegundos queremos obtener. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

### Ejemplo

HORA = 20:19:08:111\
`mSecond( HORA )` = 111

## minute

Devuelve los minutos (0 a 59) de la hora

### Sintaxis

`minute(hora)`

### Parámetros

#### **hora**

Expresión de tipo hora cuyo dato minutos queremos obtener. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

### Ejemplo

HORA = 20:19:08:111\
`minute( HORA )` = 19

## second

Devuelve los segundos (0 a 59) de la hora.

### Sintaxis

`second(hora)`

### Parámetros

#### **hora**

Expresión de tipo hora cuyo dato segundos queremos obtener. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

### Ejemplo

HORA = 20:19:08:111\
`second( HORA )` = 8

## setTime

Crea una hora.

### Sintaxis

`setTime(hora, minuto, segundo)`

### Parámetros

#### **hora**

Dato hora con el que queremos componer la hora.

#### **minuto**

Dato minuto con el que queremos componer la hora.

#### **segundo**

Dato segundo con el que queremos componer la hora.

### Ejemplo

`setTime( 13, 25, 15 )` = 13:25:15

## stringToTime

Convierte en hora una cadena según las indicaciones del formato.

### Sintaxis

`stringToTime(cadena, cadenaFormato)`

### Parámetros

#### **cadena**

Cadena que contiene la hora.

#### **cadenaFormato**

Permite indicar cuál es el formato de la hora en 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).

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.

## timeIsValid

Indica si la hora es válida (Si=1, No=0).

### Sintaxis

`timeIsValid( hora )`

### Parámetros

#### **hora**

Expresión de tipo hora que queremos comprobar. Esta hora puede ser un literal, una variable, un campo, el retorno de una función, etc.

### Ejemplo

HORA = 13:25:05\
`timeIsValid(HORA)` = 1

## timeToString

Devuelve la hora como una cadena según las indicaciones del formato.

### Sintaxis

`timeToString(hora, cadenaFormato)`

### Parámetros

#### **hora**

Expresión de tipo hora que queremos formatear.

#### **cadenaFormato**

Cadena de formato que especifica cómo crear la cadena a partir de la hora.

#### **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)
