CALCULO DE HORAS
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.
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.
Olá,
não se esta será a melhor de o fazer, mas pode ser que ajude...
a data é a data americana:
té +
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é +
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.
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.
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
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)
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