Ir para conteúdo
Fórum Script Brasil
  • 0

Subtrair Tempo


Gabriel Cabral

Pergunta

Ae gente.....to com um problemão aqui....

assim.....tenho duas textbox com horarios e um vai subtrair do outro...

eles estao subtraindo perfeitamente...

exceto por uma coisa...

supondo que a operação será txtTempo1 - txtTempo2

txtTempo1 = 00:15 [15 minutos]

txtTempo2 = 00:20 [20 minutos]

então..... txtTempo1 - txtTempo2 = ????

na teoria seria igual a - 00:05 [menos 5 minutos]

mas isso não existe....

então o que acontece é que ao invés de fazer txtTempo1 - txtTempo2, o programa faz txtTempo2 - txtTempo1

aí o resultado fica 00:05

eu queria era q se txtTempo1 fosse menor que txtTempo2, o resultado desse 00:00

mas isso não acoontece =/

já tentei isso...

If txtTempo1.Text < txtTempo2.Text Then

DadosAtendimentos.Recordset.Fields("campo_tempo").Value = "00:00"

End If

mas não deu em nada...

alguém me ajuda por favooooorrr !!!!!

obrigado

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

VB não é muito minha cara, então pode ser que eu esteja comendo bola...

Mas a lógica não seria mais ou menos assim:

se (valor.campo1 < valor.campo2) então
resultado = campo2 - campo1
escreva resultado
senão
resultado = campo1 - campo2
escreva resultado
fim se

Link para o comentário
Compartilhar em outros sites

  • 0
VB não é muito minha cara, então pode ser que eu esteja comendo bola...

Mas a lógica não seria mais ou menos assim:

se (valor.campo1 < valor.campo2) então
resultado = campo2 - campo1
escreva resultado
senão
resultado = campo1 - campo2
escreva resultado
fim se

Poutz fahledu

não é isso não =(

eu não sei se não ta dando certo porque faço calculo com datas utilizando o TimeSerial, ou pode não ter nada a ver...

mas obrigado de qualquer forma

Link para o comentário
Compartilhar em outros sites

  • 0

em vez de txtTempo1 - txtTempo2 faca DateDiff("n", CDate(txtTempo1.Text), CDate(txtTempo2.Text)). ai nesse caso ele vai voltar a diferenca em minutos. se quiser depois converter pro formato 99:99, usa essa funcao q eu fiz:

Public Function MontaHora(Min As Integer) As String
    If Min < 0 Then
        MontaHora = "-"
        Min = Abs(Min)
    Else
        MontaHora = ""
    End If
    MontaHora = MontaHora & Val(Min / 60) & ":" & IIf(Len(CStr(Min Mod 60)) = 1, "0", "") & Min Mod 60
End Function[/code] e na hora de comparar as datas faca:
[code]If CDate(txtTempo1.Text) < CDate(txtTempo2.Text) Then
DadosAtendimentos.Recordset.Fields("campo_tempo").Value = "00:00"
End If

Link para o comentário
Compartilhar em outros sites

  • 0
em vez de txtTempo1 - txtTempo2 faca DateDiff("n", CDate(txtTempo1.Text), CDate(txtTempo2.Text)). ai nesse caso ele vai voltar a diferenca em minutos. se quiser depois converter pro formato 99:99, usa essa funcao q eu fiz:

Public Function MontaHora(Min As Integer) As String
    If Min < 0 Then
        MontaHora = "-"
        Min = Abs(Min)
    Else
        MontaHora = ""
    End If
    MontaHora = MontaHora & Val(Min / 60) & ":" & IIf(Len(CStr(Min Mod 60)) = 1, "0", "") & Min Mod 60
End Function
e na hora de comparar as datas faca:
If CDate(txtTempo1.Text) < CDate(txtTempo2.Text) Then
DadosAtendimentos.Recordset.Fields("campo_tempo").Value = "00:00"
End If

então kuroi...fiz exatamente o que você indicou....

mas não ta convertendo pro formato "99:99"

o que ta errado??? :(

Editado por Gabriel Cabral
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...