CALCULO DE HORAS

ERLANMG 09/10/2013 10:42:30
#429734
Caros Colegas, bom dia!

Estou usando para cálculos de horas como segue abaixo:

Dim hora1 As DateTime
Dim hora2 As DateTime
hora2 = [Ô]30/09/2013 12:00[Ô]
hora1 = [Ô]01/10/2013 2:30[Ô]

Dim hora As TimeSpan = hora1 - hora2
MessageBox.Show(hora.ToString)

O problema é o seguinte quando ultrapassa 24 horas é retornado os dias e as horas que ultrapassou.
Alguém saberia como posso fazer para retornar em horas e não dias + horas.

Desde já agradeço a todos.



GANDA.NICK 09/10/2013 11:12:36
#429738
Resposta escolhida
Olá,

não se esta será a melhor de o fazer, mas pode ser que ajude...

a data é a data americana:

Option Explicit On
Option Strict On

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim hora1 As Date = #9/30/2013 12:00:00 PM#
Dim hora2 As Date = #10/1/2013 2:30:00 AM#

[ô]Dim horas As Long = DateDiff(DateInterval.Hour, hora1, hora2)
Dim minutosTotal As Long = DateDiff(DateInterval.Minute, hora1, hora2)

Dim horas As Long = minutosTotal \ 60
Dim minutos As Long = minutosTotal Mod 60

MessageBox.Show(horas.ToString)
MessageBox.Show(minutos.ToString)
End Sub
End Class



té +
ERLANMG 09/10/2013 11:27:24
#429740
GANDA_NICK,

Obrigado, testei e vi que é o que eu preciso, único problema é data Americana.
Qual a melhor formar de converter uma data/hora do tipo 30/09/2013 14:00 digitada em MaskedTextBox para data americana?
Desde já agradeço a todos.
OCELOT 09/10/2013 11:54:25
#429744
Do jeito que você faz já da para pegar em horas, o objeto TimeSpan tem um propriedade chamada TotalHours que retorna o valor em horas, único detalhe é que o valor pode ter casas decimais para o caso de ter diferença em minutos, no caso do seu exemplo ele retornaria 14,5
ERLANMG 09/10/2013 14:16:27
#429755
Obrigado a todos.

Caso precisem, resolvido como segue:

Peguei o total de minutos das diferença entre as datas/horas usando o TimeSpan e usei a parte final da função do GANDA_NICK (citada acima) para apurar o total de horas e total de minutos.

Mais uma vez obrigado a todos.


Dim hora1 As DateTime
Dim hora2 As DateTime
hora2 = [Ô]30/09/2013 12:00[Ô]
hora1 = [Ô]01/10/2013 2:30[Ô]

Dim hora As TimeSpan = hora2 - hora1

Dim horas As Long = hora.TotalMinutes \ 60
Dim minutos As Long = hora.TotalMinutes Mod 60

MessageBox.Show(horas.ToString)
MessageBox.Show(minutos.ToString)
Tópico encerrado , respostas não são mais permitidas