ERRO NO CALCULO NO TIMERSPAN
olá pessoal.
estou com um datagrid onde que tenho a coluna HORAS, porem ele esta funcionando perfeito unico problema é quando faço a soma da coluna por horas e minutos da coluna acima de 24 hs ele me esta dando um erro conforme o exemplo
exemplo
eduardo =7:30
eduardo =7:30
eduardo =7:30
eduardo =7:30
eduardo =7:30
ele soma 2.32:40:00
alguma ideia por gentileza?
segue o codigo
estou com um datagrid onde que tenho a coluna HORAS, porem ele esta funcionando perfeito unico problema é quando faço a soma da coluna por horas e minutos da coluna acima de 24 hs ele me esta dando um erro conforme o exemplo
exemplo
eduardo =7:30
eduardo =7:30
eduardo =7:30
eduardo =7:30
eduardo =7:30
ele soma 2.32:40:00
alguma ideia por gentileza?
segue o codigo
Citação:ele soma [txt-color=#e80000]2[/txt-color].32:40:00
O valor 2 ali no inicio da saÃda corresponde ao numero de dias. Se formos considerar somente esses dados apresentados, o valor de saÃda realmente estaria incorreto. Mas acredito que sua variável já continha algum valor antes da soma desses valores. Faça essa verificação e veja se não é isso.
Aqui o resultado está dando 1.13:30:00 (um dia, treze horas e trinta minutos):
dim t1 as TimeSpan
For i as integer = 0 to 4
t1 = t1 + TimeSpan.Parse([Ô]7:30[Ô])
next
Console.WriteLine(t1)
Citação::
ele soma [txt-color=#e80000]2[/txt-color].32:40:00
O valor 2 ali no inicio da saÃda corresponde ao numero de dias. Se formos considerar somente esses dados apresentados, o valor de saÃda realmente estaria incorreto. Mas acredito que sua variável já continha algum valor antes da soma desses valores. Faça essa verificação e veja se não é isso.
Aqui o resultado está dando 1.13:30:00 (um dia, treze horas e trinta minutos):dim t1 as TimeSpan
For i as integer = 0 to 4
t1 = t1 + TimeSpan.Parse([Ô]7:30[Ô])
next
Console.WriteLine(t1)
Jaba, ja verifiquei mas nao soluciona l problema, mas tem como converter esse valor de saida em horas? Pois somente preciso de como totalizar as horas nao sei como fazer essa funçao funcionar.
Utilize a propriedade TotalHours:
dim t1 as TimeSpan
For i as integer = 0 to 4
t1 = t1 + TimeSpan.Parse([Ô]7:30[Ô])
next
Console.WriteLine(t1.[txt-color=#e80000]TotalHours[/txt-color])
Ele continua calculando errado, mudei pars totalhours, porem sem sucesso.
Olhe o exemplo que acabei de fazer
Olhe o exemplo que acabei de fazer
Sao 4 registro de daniella, devia total fd me retornar o valor de 37:30 horas positivas mas ele me esta dando 29,33333333333....
Alguma idéia?
Alguma idéia?
Certamente o erro está no uso de suas variáveis. Você tem que debugar e verificar se os dados estão chegando certo nelas.
Citação::
Sao 4 registro de daniella, devia total fd me retornar o valor de 37:30 horas positivas mas ele me esta dando 29,33333333333....
Alguma idéia?
Pela screenshot está mostrando 4 registros de 7:20, que somando daria um total de 29:20
Dá-hle OCELO!!!
Citação::
Certamente o erro está no uso de suas variáveis. Você tem que debugar e verificar se os dados estão chegando certo nelas.
o calculo esta correto, unico problema que tenho é que nao estou conseguindo converter de dias para horas, eu nao tratar que em vez que seja dias me de total de horas.
Você precisa fazer manualmente a formatação, ele não vai ter a formatação do jeito que você quer automaticamente
Aqui é só usar o TotalHours para pegar as horas, porém ele retorna um número quebrado pois inclui minutos e segundos, por exemplo 29.5 representa [Ô]29:30[Ô], então é mais fácil usar o Math.Floor para retornar um número inteiro arredondando para baixo para pegar apenas as horas, então formatando manualmente adicionando os minutos caso existam.
horaFormatada = String.Formar([Ô]{0:00}:{1:00}[Ô], Math.Floor(seuTimeSpan.TotalHours), seuTimeSpan.Minutes)
Aqui é só usar o TotalHours para pegar as horas, porém ele retorna um número quebrado pois inclui minutos e segundos, por exemplo 29.5 representa [Ô]29:30[Ô], então é mais fácil usar o Math.Floor para retornar um número inteiro arredondando para baixo para pegar apenas as horas, então formatando manualmente adicionando os minutos caso existam.
Tópico encerrado , respostas não são mais permitidas