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.