Mitra Global Services

Navimania 55 – Calcular horas

Hola otra vez!

Hoy os traigo la manera de hacer cálculos con variables de tipo Time. De esto hemos hablado en otros blogs link y link pero esta vez ampliaremos lo que ya os contamos anteriormente e incluso mejoraremos algunas funciones como la de restar dos variables de tipo tiempo.

Haremos 4 funciones una de suma, otra de resta, una de convertir la variable de tipo Time a Decimal y la ultima al contrario, es decir, de Decimal a Time.

Sin mas dilación vamos manos a la obra 😏

Format Time

Primero de todo hemos creado una función para formatear las variables de tipo Time.

Es sencilla y lo único que hacemos es formatearla con los valores que queremos para que no incluya milisegundos y siempre trabajemos con los mismos valores.

Suma

Empezamos creando la función con sus variables y sus parámetros y retornaremos un Time.

Primero inicializamos el ValueTime03 y comprobamos que los valores no vengan espacios vacíos:

Hacemos las restas y las añadimos a las variables de tipo Duration:

Sumamos los dos valores en una tercera variable:

Por último, convertimos y formateamos a la variable Time de retorno:

Resta

En la resta, la diferencia con los ejemplos anteriores de otros blogs, es que la hemos compactado tanto en complejidad como en líneas de código.

Lo primero que vamos a hacer es como siempre las variables, los parámetros y el retorno:

Inicializamos el ValueTime03 y comprobamos que los valores no vengan vacíos:

Hacemos la resta hacia la variable de tipo Duration:

Y por último, convertimos y formateamos a la variable Time de retorno:

Convertir de Time a Decimal

Esta función será sencilla, no requiere de variables, pero sí de parámetros y lógicamente de un retorno:

Para el código lo primero que hacemos es verificar que no esté el parámetro vacío:

Y después solo convertimos la variable de tipo Time en un decimal:

Primero le restamos hasta el final del día para después dividirlo por la cantidad en milisegundos a horas.

Esto retornara un decimal en horas.

Si se quisiera transformar en minutos o en segundos solo se debería dividir entre cada una de las medidas de tiempo que queramos.

Convertir de Decimal a Time

La última de las funciones que os mostraremos hoy es la de convertir de un decimal a Time.

Esto como siempre creamos la función, con sus variables y parámetros e incluso su retorno:

Lo primero que hacemos es redondear el decimal, en nuestro caso a 5 decimales:

Después multiplicamos el decimal por la cantidad de la unidad de medida de tiempo que queramos utilizar, en este ejemplo lo convertimos en horas:

Por último, inicializamos la variable, la sumamos con la variable de tipo Duration y formateamos el retorno de tipo Time:

Como siempre este ejemplo entero lo tenéis colgado en GitHub en el link.

Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.

ES