none
SOMANDO HORAS COM MAIS DE 1 DIA RRS feed

  • Pergunta

  • <<<<< VISUAL BASIC 6.0 >>>>>>

    Amigos, boa tarde.. estou criando um sistema para estacionamento e estou batendo a cabeça para calcular horas....
    Exemplo: Para veiculos entrando no patio em um dia e hora, tudo bem, consigo fazer normalmente o sistema calcular o nr. de horas que o veiculo ficou no patio.. o meu problema está quando vira MEIA NOITE e inicia novo dia/data e se perde no calculo. 

    EXEMPLO: 

    veiculo entrou no patio as 22:00 e lá permaneceu até as 8:00 do dia seguinte....
    O sistema está calculando o numero de horas até meia noite e dá o numero de horas das 22:00 as 23:59 certinho, no entanto virou 0:00 (MEIA NOITE E VIROU A DATA), ele está contando a hora a partir das 00:00 e ignornando as 2 horas que que o veiculo ficou no dia anterior (das 22:00 as 23:59...  Teria que somar as horas do dia anterior e as horas do novo dia/data que virou ... alguem sabe como faço esse calculo ?

    Estou usando esse codigo abaixo:

     

    If ENTROU.Text <> "" Then
    DIA1 = Format(ENTROU.Text, "DD/MM/YYYY")
    End If
    DIA2 = Format(Date, "DD/MM/YYYY")
    FICOU.Caption = Format(TimeValue(HENTROU) - TimeValue(HORASAI), "hh:mm")

    Fico agradecido.



    • Editado NTWSISTEMAS quarta-feira, 17 de outubro de 2018 16:08
    quarta-feira, 17 de outubro de 2018 15:02

Respostas

Todas as Respostas

  • Olá Programador,

    Vê no meu exemplo o método que uso para calcular as horas no caso do género e pode adaptar ele nas tuas circunstâncias:

    Private Sub CalculaHora()
            Dim horaEntrada As TimeSpan = TimeSpan.Parse(TextBox3.Text)
            Dim horaSaida As TimeSpan = TimeSpan.Parse(TextBox4.Text)
            Dim horaTotal As TimeSpan
            Dim horaDia As TimeSpan = New TimeSpan(24, 0, 0)

            horaTotal = horaSaida.Subtract(horaEntrada)
            If horaTotal.TotalHours < 0 Then
                horaTotal = horaTotal.Add(horaDia)
            End If
            Label1.Text = horaTotal.ToString()
        End Sub

    Se te ajudou vota como útil e marque a resposta.

    quarta-feira, 17 de outubro de 2018 15:20
  • Hi amigo.. nao deu certo.. estou usando VB6 e esse código nao  roda nele.. dá erros

    substitui os TEXT pelos campos do meu form (hora entrada, saida) mas já fica em VERMELHO de ERRO...

     

    quarta-feira, 17 de outubro de 2018 15:59
  • Obs,

    Este código funcionam então só no vb.net!

    quarta-feira, 17 de outubro de 2018 16:14
  • Dê uma olhada neste link tem muitas funções de cálculos de tempo em vb6:

    http://www.macoratti.net/vb_datas.htm

    Sucesso!

    • Marcado como Resposta NTWSISTEMAS quarta-feira, 17 de outubro de 2018 17:01
    quarta-feira, 17 de outubro de 2018 16:36
  • Achei aqui uma sequencia que me serviria mas tem um problema:

    horas_trabalhadas= format((#17:00# - #09:00#) * 24, "#0.0")
    ? horas_trabalhadas & " horas 


    Nesta sequencia, eu gostaria de substituir o #17:00  pelo campo HORAENTRA.TEXT e o #09:00:00 pelo campo HORASAI.TEXT do FORM.. mas nao aceita.. alguém teria uma solução para esse impasse?

    Obrigado ! 

    quarta-feira, 17 de outubro de 2018 19:01