none
Soma de Data e Horas apos na Madrugada, ao virar o dia VB6 RRS feed

  • Pergunta

  • Ola Amigos tenho dois campos que somam as horas e e dá o valor centesimal

     8 Horas Trabalhadas

    Pra isso utilizou o seguinte codigo

     

      Dim Periodo As Variant
        Periodo = Format((TimeValue(MaskEdBox1.Text) - TimeValue(MaskEdBox2.Text)), "hh:mm")
        Periodo = Hour(Periodo) + Minute(Periodo) / 60
        Text1.Text = Format(Periodo, "0.00")

    Só que gostaria de Saber como faço pra fazer esse tipo de calculo.

    O Colaborador entra as 19/09/2012 as 22:00 e Sai as 20/09/2012 as 06:00 que dá 8 Horas Trabalhadas

    No programa ele me dá o seguinte resultado 

    

    quinta-feira, 20 de setembro de 2012 19:59

Respostas

  • Moises, Bom dia

    Cara, não tenho conhecimento em VB6 para poder te auxiliar no codigo.

    Eu tenho um exemplo pronto só que em C#

    TimeSpan horaInicio = new TimeSpan(22, 0, 0);
    TimeSpan horaFinal = new TimeSpan(6, 0, 0);
    if (horaFinal < horaInicio)
        horaFinal = new TimeSpan(6 + 24, 0, 0);
    TimeSpan resultado = horaFinal.Subtract(horaInicio);
    Agora em VB6, não sei fazer e nem tenho como testar aqui

    Bruno Viegas D. Ribeiro

    Nunca abandone sua thread!
    - Se alguma resposta resolveu seu problema marque-a como resposta para que possa ajudar outras pessoas.
    - Se a resposta não resolveu, mas ajudou a você chegar a sua resposta Marque-a como útil.

    sexta-feira, 21 de setembro de 2012 11:19

Todas as Respostas

  • Moisés

    Tente acrescentar 24horas, sempre que o segundo valor for menor que o primeiro


    Bruno Viegas D. Ribeiro

    Nunca abandone sua thread!
    - Se alguma resposta resolveu seu problema marque-a como resposta para que possa ajudar outras pessoas.
    - Se a resposta não resolveu, mas ajudou a você chegar a sua resposta Marque-a como útil.

    quinta-feira, 20 de setembro de 2012 20:09
  • Bruno tentei fazer mais ou menos assim

        Dim Periodo As Variant
        Dim txt2 As Variant                     'criei uma variavel para somar mais 24 horas para somar
        txt2 = Format((TimeValue(MaskEdBox2.Text) + TimeValue("24:00")), "hh:mm")
        Periodo = Format((TimeValue(MaskEdBox1.Text) - TimeValue(txt2)), "hh:mm")
        Periodo = Hour(Periodo) + Minute(Periodo) / 60
        Text1.Text = Format(Periodo, "0.00")
        Text2.Text = (Periodo) * 60

    O Resulta me aparece zerado, tambem tentei assim

        Periodo = Format((TimeValue(MaskEdBox1.Text) - TimeValue(MaskEdBox2.Text + ("24:00"))), "hh:mm")
        Periodo = Hour(Periodo) + Minute(Periodo) / 60
        Text1.Text = Format(Periodo, "0.00")
        Text2.Text = (Periodo) * 60

    No excell Bruno ele Funciona assim

    quinta-feira, 20 de setembro de 2012 20:49
  • Olá,

    Estou movendo este post para a categoria de VB...

    Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá...

    Obrigado...

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    sexta-feira, 21 de setembro de 2012 10:48
    Moderador
  • Moises, Bom dia

    Cara, não tenho conhecimento em VB6 para poder te auxiliar no codigo.

    Eu tenho um exemplo pronto só que em C#

    TimeSpan horaInicio = new TimeSpan(22, 0, 0);
    TimeSpan horaFinal = new TimeSpan(6, 0, 0);
    if (horaFinal < horaInicio)
        horaFinal = new TimeSpan(6 + 24, 0, 0);
    TimeSpan resultado = horaFinal.Subtract(horaInicio);
    Agora em VB6, não sei fazer e nem tenho como testar aqui

    Bruno Viegas D. Ribeiro

    Nunca abandone sua thread!
    - Se alguma resposta resolveu seu problema marque-a como resposta para que possa ajudar outras pessoas.
    - Se a resposta não resolveu, mas ajudou a você chegar a sua resposta Marque-a como útil.

    sexta-feira, 21 de setembro de 2012 11:19