Principales respuestas
VB.NET - Convertir minutos a hora

Pregunta
-
Estimados,
necesito convertir, por ejemplo, 84 minutos en 01:24 hrs.
Como lo puedo hacer, alguna función?
viernes, 16 de julio de 2010 2:31
Respuestas
-
hola
podrias hacer
Dim minutos As Integer = 84
Dim hora As String = String.Format("{0:N0}:{1:N0} hrs", minutos / 60, minutos Mod 60)
Nota: el N0 indice quee s un numero con cero decimales
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Rafael FagundesModerator lunes, 19 de julio de 2010 14:30
viernes, 16 de julio de 2010 2:59
Todas las respuestas
-
hola
podrias hacer
Dim minutos As Integer = 84
Dim hora As String = String.Format("{0:N0}:{1:N0} hrs", minutos / 60, minutos Mod 60)
Nota: el N0 indice quee s un numero con cero decimales
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Rafael FagundesModerator lunes, 19 de julio de 2010 14:30
viernes, 16 de julio de 2010 2:59 -
esto es mas largo pero igual funciona:
dim minutos as integer
minutos=84
dim horas as integer
while minutos=>60
horas=horas+1
minutos=minutos-60 //aqui minutos quedaria en (84-60=24)
end while
string total=horas & ":" & minutos
no estoy seguro si estoy usando bien el while(tengo mucho sin usar vb) pero el concepto es basico, mientras tu variable minutos sea mayor que 60 ps tu variable horas se incrementa mientras que la var minutos se decrementa en 60 (ps esos 60 ya se convirtieron en 1 hora), igual y por ahi tienes que covertir horas y minutos a string, pero supongo que eso ya sabes como hacerlo
DavidDDR david_fer1@hotmail.com- Propuesto como respuesta Cautivo01 viernes, 20 de octubre de 2017 6:15
viernes, 16 de julio de 2010 6:50 -
hola ,
Que has visto con la informacion que te facilitaron te ha dado resultado ?
enmanuel grullard
republica dominicana
viernes, 16 de julio de 2010 20:51Moderador -
enmanuel buenas tardes, la solucion de Leandro Tuttini funciona a la perfeccion
Edgar Ch.
Republica de Colombia
jueves, 29 de julio de 2010 21:03 -
En realidad a esta función hay que hacerles varios ajustes, por ejemplo si le pasas 56 minutos devuelve 1:56 hrs, o si le pasas 125 minutos devuelve 2:5 hrs.
En cambio la siguiente función que diseñe realmente funciona correctamente.
Public Shared Function ConvertirMinutosAHoras(ByVal paramMinutos As Short) As String
Return paramMinutos \ 60 & ":" & IIf(paramMinutos Mod 60 < 10, "0" & paramMinutos Mod 60, paramMinutos Mod 60) & "hs"
End Function
Notar la división entera, muy importante a la hora de terminar la cantidad de horas.
Lo dejo para futuras generaciones!
jueves, 12 de enero de 2012 14:32 -
En realidad a esta función hay que hacerles varios ajustes, por ejemplo si le pasas 56 minutos devuelve 1:56 hrs, o si le pasas 125 minutos devuelve 2:5 hrs.
En cambio la siguiente función que diseñe realmente funciona correctamente.
Public Shared Function ConvertirMinutosAHoras(ByVal paramMinutos As Short) As String
Return paramMinutos \ 60 & ":" & IIf(paramMinutos Mod 60 < 10, "0" & paramMinutos Mod 60, paramMinutos Mod 60) & "hs"
End Function
Notar la división entera, muy importante a la hora de terminar la cantidad de horas.
Lo dejo para futuras generaciones!
Hola Leonardo.giampietro,
realmente tienes razon 56 minutos usando el mod te devuelve 56 y 56 / 60 para calcular las horas, es aqui donde esta el problema, ¿Porque? porque este te devuelde double cuyo valor sera: 0.93333333333333335 y como lo estas almacenando en un Integer lo redondea a 1 por ende el resultado sera 1:56.
para resolver aun siendo mas practicos comprueba de esta manera.
Dim totalMinutos As Integer = 570 Dim minutos As Integer = 0 Dim horas As Integer = Math.DivRem(totalMinutos, 60, minutos) MessageBox.Show(String.Format("{0:00}:{1:00}", horas, minutos))
donde 570 = 9 horas con 30 minutos.bien es cierto que es una pregunta que ya ha sido respondida, pero que tiene el error lo tiene.
Salu2,
Marvin E. Pineda
ComboBoxMultiColumns
jueves, 12 de enero de 2012 16:00Moderador -
Public Shared Function ConvertirMinutosAHoras(ByVal paramMinutos As Short) As String
Return paramMinutos \ 60 & ":" & IIf(paramMinutos Mod 60 < 10, "0" & paramMinutos Mod 60, paramMinutos Mod 60) & "hs"
End Function
mmm... mi ejemplo anterior fue por el IIf() que usas... no lo lei bien y es por que si el resultado tiene menos de 10 minutos y como estas devolviendo una cadena le asignas un 0 a la izquierda de los minutos para que lo pase de la siguiente manera
por ejemplo:
9:1 entonces devolvera 9:01.... bien, aplicandole formato evitarias el IIf(), claro!!!!.. en VB.NET lo desconosco en versiones previas a VS.NET
hago la aclaración.
Salu2,
Marvin E. Pineda
ComboBoxMultiColumns
jueves, 12 de enero de 2012 16:25Moderador