SUBTRAIR HORAS ! URGENTE POR FAVOR !

YANCOLUCAS 16/03/2013 16:39:06
#420590
Olá a todos, não sei como fazer uma operação, eu tenho duas textbox :
Hora de entrada : 07:00
Hora de saída: 19:00

O que eu quero é o seguinte, exemplo, se o Joao chegar no trabalho as 07:25, ele vai ficar devendo 25 minutos de trabalho. Entenderam ?

Se chegar depois da 07:00 e/ou sair antes das 19:00 vai ficar devendo tantas horas, era isso o que eu queria fazer, subtrair o total de horas e colocar esse valor subtraido em outra textbox.

Estou usando VB6 !
NILSONTRES 16/03/2013 18:21:32
#420591
Amigo, depois que fiz o exemplo é que vi que, é para vb6, esse que fiz é para vb.net
Mas tenta ai, pode até dar, talvez com alguma modificação.
Se não me engano no vb6 é assim:
DateDiff(m, _HEntrada, _HChegada)
é por isso que aconselho todos a migrar para .net, é bem mais facilitada nossa vida.
Boa Sorte.

VB.net
Dim _HEntrada As DateTime = TextBox1.Text
Dim _HChegada As DateTime = TextBox2.Text
TextBox3.Text = DateDiff(DateInterval.Minute, _HEntrada, _HChegada)
OMAR2011 16/03/2013 20:50:32
#420594
Dim data As String
data = (DateTime.Parse(txthorasaida.Text) - DateTime.Parse(txthorachegada.Text)).ToString()
txttempo.Text = Trim(data)
MARCELO.TREZE 17/03/2013 09:09:03
#420599
é assim datediff vai te dar a diferença entre duas horas que poderá ser em horas(h) minutos(n) segundos(s) ou dias, meses e anos, depois vc deverá comparar esta diferença com o tempo de serviço que o funcionário deve trabalhar.

ex:

Dim HoraIni As Date
Dim HoraFim As Date
Dim TempoTrab As Interger
Dim Diferenca As Integer
Dim Resultado As Integer

Horaini = txtEntrada.Text
HoraFim = txtSaida.Text

diferenca = Datediff([Ô]n[Ô], Horaini, HoraFim)[txt-color=#007100] [ô] como vc deseja o resultado em minutos deverá fazer o calculo em minutos[/txt-color]

TempoTrab = 8 * 60[txt-color=#007100] [ô] aqui converto 8 horas em minutos para poder fazer o calculo[/txt-color]

[txt-color=#007100][ô] agora farei o calculo[/txt-color]

Resultado = TempoTrab - diferenca


é isso ai
OMAR2011 17/03/2013 10:06:27
#420601
A bicuda machucou o dedão.
Acima,o meu é vb2010 ou.
vb6 retirado de outros.
Este também da certo.
Dim Interval As Double, totalhours As Double, totalminutes As Double, minutes As Double, hours As Double
Interval = CDate(txtsaida.Text) - CDate(txtentrada.Text)
totalhours = Int(CSng(Interval * 24))
totalminutes = Int(CSng(Interval * 1440))
minutes = totalminutes Mod 60
hours = totalhours Mod 24
txtresult.Text = totalhours & [Ô]:[Ô] & minutes
MAURICIO 17/03/2013 13:55:12
#420616
Dim Tempo As Date

Tempo = DateDiff([Ô]n[Ô], hora1, hora2)

Tempo = Format(Int((Tempo) / 60), [Ô]00[Ô]) & Format(Tempo Mod 60, [Ô]00[Ô])
ttempot = Format(Tempo, [Ô]00:00[Ô])

LblSaldo.Caption = ttempot
ECJ69SSS 21/08/2017 01:31:46
#475892
Bom Dia,

Andei pesquisando por calculo de data/hora e não encontrei nada que dava jeito!

Consegui montar esta pérola vendo o que foi postado no topico...

Citação:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

If TextBox1.Text = Nothing Or TextBox2.Text = Nothing Then
MsgBox([Ô]entre com os valores corretos![Ô], vbExclamation)
GoTo salta
End If

[ô] Dim dif As Long, resultado As Long

Dim hi As DateTime = TextBox1.Text

Dim hf As DateTime = TextBox2.Text

Dim hh As String
Dim mm As String

hh = DateDiff(DateInterval.Hour, hi, hf)

mm = DateDiff(DateInterval.Minute, hi, hf)

mm = mm Mod 60


TextBox3.Text = hh & [Ô]:[Ô] & mm
salto:
end sub



OMAR2011 21/08/2017 07:48:02
#475894
Vb6 não aceita isto.
Foi postado em VB / VBA.
Faça seu login para responder