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.
![](https://mitrags.com/wp-content/uploads/2023/02/image-13.png)
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.
![](https://mitrags.com/wp-content/uploads/2023/02/image-14.png)
Primero inicializamos el ValueTime03 y comprobamos que los valores no vengan espacios vacíos:
![](https://mitrags.com/wp-content/uploads/2023/02/image-15.png)
Hacemos las restas y las añadimos a las variables de tipo Duration:
![](https://mitrags.com/wp-content/uploads/2023/02/image-16.png)
Sumamos los dos valores en una tercera variable:
![](https://mitrags.com/wp-content/uploads/2023/02/image-17.png)
Por último, convertimos y formateamos a la variable Time de retorno:
![](https://mitrags.com/wp-content/uploads/2023/02/image-18.png)
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:
![](https://mitrags.com/wp-content/uploads/2023/02/image-19-1024x161.png)
Inicializamos el ValueTime03 y comprobamos que los valores no vengan vacíos:
![](https://mitrags.com/wp-content/uploads/2023/02/image-20.png)
Hacemos la resta hacia la variable de tipo Duration:
![](https://mitrags.com/wp-content/uploads/2023/02/image-21.png)
Y por último, convertimos y formateamos a la variable Time de retorno:
![](https://mitrags.com/wp-content/uploads/2023/02/image-22.png)
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:
![](https://mitrags.com/wp-content/uploads/2023/02/image-23.png)
Para el código lo primero que hacemos es verificar que no esté el parámetro vacío:
![](https://mitrags.com/wp-content/uploads/2023/02/image-24.png)
Y después solo convertimos la variable de tipo Time en un decimal:
![](https://mitrags.com/wp-content/uploads/2023/02/image-25.png)
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:
![](https://mitrags.com/wp-content/uploads/2023/02/image-26.png)
Lo primero que hacemos es redondear el decimal, en nuestro caso a 5 decimales:
![](https://mitrags.com/wp-content/uploads/2023/02/image-27.png)
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:
![](https://mitrags.com/wp-content/uploads/2023/02/image-28.png)
Por último, inicializamos la variable, la sumamos con la variable de tipo Duration y formateamos el retorno de tipo Time:
![](https://mitrags.com/wp-content/uploads/2023/02/image-29.png)
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.