ALGUÉM PODE MELHORAR ESTE CÓDIGO.
Correto seria vc trazer esse calculo diretamente do banco de dados. Desde que as colunas estejam devidamente no formato correto.
Um dos maiores erros em cálculos de horas é exatamente o tipo de dados.
Tenho que fazer esse tipo de calculo também, porém eu utilizo o calculo diretamente no banco.
segue exemplo para mysql :
Isso me retorna o acumulado de horas extras no mês.
O calculo é com base na coluna BH.
Um dos maiores erros em cálculos de horas é exatamente o tipo de dados.
Tenho que fazer esse tipo de calculo também, porém eu utilizo o calculo diretamente no banco.
segue exemplo para mysql :
SET Hora = (select SEC_TO_TIME( SUM(TIME_TO_SEC(TIMEDIFF(t.Saida1 , t.Entrada1) ) + TIME_TO_SEC(TIMEDIFF(t.Saida2 , t.Entrada2) ) + TIME_TO_SEC(TIMEDIFF(t.Saida3 , t.Entrada3) ) ))
from tblregistrodeponto t where t.Matricula = Matricula and t.Dia = cloop and month(t.DataRegistro) = Mes and year(t.DataRegistro) = iAno);
Isso me retorna o acumulado de horas extras no mês.
O calculo é com base na coluna BH.
PLUGSOFTSM, soma não condiz com total da coluna.
KERPLUNK, codigó C#.Converti e modifiquei.Soma mas resultado ficou acima como o meu postado.
FOXMAN, O seu com Mysql foi tiro e queda.Resultado obtido.
Vou esperar mais um pouco, de como fazer com o Datagridview.
KERPLUNK, codigó C#.Converti e modifiquei.Soma mas resultado ficou acima como o meu postado.
FOXMAN, O seu com Mysql foi tiro e queda.Resultado obtido.
Vou esperar mais um pouco, de como fazer com o Datagridview.
Como o valor está vindo no campo Hora? é só ajustar conforme abaixo:
dim hora as TimeSpan
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
hora = hora + timespan.Parse(Linha.Cells([Ô]Hora[Ô]).Value [txt-color=#e80000]& [Ô]:00[Ô][/txt-color])
Next
MsgBox hora
Mesmo assim Jaba ocorre erro.
Ele; [txt-color=#e80000]seqüência de entrada não estava em um formato incorreto[/txt-color]
Ele; [txt-color=#e80000]seqüência de entrada não estava em um formato incorreto[/txt-color]
Como os dados estão vindo no campo Hora?
HH:mm:ss
Tipo.
08:54:12
Tipo.
08:54:12
Então deveria ter funcionado com o primeiro exemplo que te passei. Certamente algum campo está vindo com o formato errado, como vazio ou nulo por exemplo, aà deve tá dando erro nele. Se for esse o caso, é só formatar o campo vazio ou nulo para [Ô]00:00:00[Ô]. Veja isso!
Abri um console aplication e colei o código e deu resultado.
00:05:00
00:05:00
Citação:Abri um console aplication e colei o código e deu resultado.
00:05:00
Sim, a intenção era apenas mostrar que o código funciona. Nesse código há um loop de 1 a 5 e está somando a hora de 1 em 1 minuto. O resultado deveria ser [Ô]00:05:00[Ô] mesmo. Agora é só adaptar aà no seu código.
Consegui resolver com post anterior do KERPLUNK e MARCELO TREZE.
Fiz o teste com dados do COQUITO e resultado exato.
No mais agradecido ao JABA,FOXMAN,KERPLUNK e MARCELO TREZE.
Fiz o teste com dados do COQUITO e resultado exato.
No mais agradecido ao JABA,FOXMAN,KERPLUNK e MARCELO TREZE.
Tópico encerrado , respostas não são mais permitidas