Saltar al contenido

Función que convierta minutos en horas


Recommended Posts

publicado

Buenas tardes,

Tengo una función que convierte minutos en horas:

'Convierto minutos en horas
Function CalculoHHMM(intMinutos As Integer) As Date
intMinutos = Abs(intMinutos Mod 1440)
CalculoHHMM = intMinutos \ 60 & ":" & Format((Abs(intMinutos Mod 60)), "00")
End Function

El problema es que si la cantidad de minutos a convertir en horas sobrepasa los 1440 minutos (24 horas) el contador vuelve a cero y no consigo hacer que las horas sigan sumándose a partir de 24h.

Por ejemplo, 1441 minutos son 24:01 horas. Con esa función lo muestra cómo 00:01 horas, que no es lo que busco.

¿Alguna ayuda?

Gracias.

publicado

Deja la función así:

Function CalculoHHMM(intMinutos As Integer) As Double
CalculoHHMM = intMinutos / 1440
End Function[/CODE]

Y dale formato a la celda: [b][color=#ff0000] [size=4][h]:mm[/size][/color][/b][size=4]

Piensa, que a pesar de ver el resultado en horas, el valor real, o sea el numérico, está en días.[/size]

.

publicado

¿ Y como está definida la columna ?

He de irme, luego intentaré ver que se puede hacer, aunque Access no es mi fuerte.

publicado

En las tablas el valor está definido cómo número entero. Se almacenan minutos en partes de trabajo que luego, en informes en consultas sql pretendo transformar a hh:mm. El problema llega cuando la acumulación de minutos sobrepasa las 24horas... es ahí donde no consigo que la función devuelva la suma completa de horas.

publicado

Bueno, he hecho una pequeña chapucilla, pero claro, es eso, una chapucilla:

Function Minutillos(Minutes As Integer) As String

 Dim Dias As Integer

 Dias = Int(([Minutes] \ 60) \ 24)

 If Dias < 1 Then

 Minutillos = Format(([Minutes] \ 60) Mod 24, "00") & ":" & Format([Minutes] Mod 60, "00")

 Else

 Diitas = Int(([Minutes] \ 60) \ 24) * 24
 Horitas = ([Minutes] \ 60) Mod 24
 Minutitos = Format([Minutes] Mod 60, "00")
 HorasFin = Format((Horitas + Diitas), "00")
 Minutillos = HorasFin & ":" & Minutitos


 End If

Es un poco cursi el código, pero no tenía gana de estrujarme los sesos con los nombres...jejeje.

El problema que encuentro es que Minutillos es de tipo String, si pongo tipo Date (cómo varios ejemplos que he visto por ahí) me falla la función...

A ver si alguien la puede echar un ojo y me dice cómo mejorarla.

Gracias.

publicado

A mi me ha salido esto:


Function ConvertirMinutos(Minutos As Integer) As String
m = Minutos Mod 60
h = (Minutos - m) / 60
ConvertirMinutos = h & ":" & Format(m, "00")
End Function

[/CODE]

Por cierto, ¿ Porqué conviertes los minutos a días ? Simplemente, dividiendo los minutos por 60 obtienes el número de horas y con el resto obtienes los minutos.

.

publicado

Muchísimas gracias!!

Por cierto, ¿ Porqué conviertes los minutos a días ? Simplemente, dividiendo los minutos por 60 obtienes el número de horas y con el resto obtienes los minutos.

Pues no lo sé la verdad. Se me ocurrió en un momento de desesperación, jejeje.

Gracias por todo.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.