ERRO NO CALCULO NO TIMERSPAN
Citação::
Você precisa fazer manualmente a formatação, ele não vai ter a formatação do jeito que você quer automaticamentehoraFormatada = 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.
cara vc me deu a ideia que nao lembrava obg. deu certo
exemplo
entao quando eu faço o calculo em ambos, ele me esta dando uma hora a mais.
veja
hora: 17:30
hora: 17:30
hora: 10:30
---------------------
total 45:30 é o correto mas ele me esta dando 46:30
ma ideia pessoal
algu
Citação::
gente reabri o topico, porque ele esta dando calculou errado.
exemplo
entao quando eu faço o calculo em ambos, ele me esta dando uma hora a mais.
veja
hora: 17:30
hora: 17:30
hora: 10:30
---------------------
total 45:30 é o correto mas ele me esta dando 46:30
ma ideia pessoal
algu
Você provavelmente não usou o Math.Floor como eu usei no meu exemplo.
Ele está lá por um motivo importante e você deve ter acabado de descobrir o porque.
Citação::
:
gente reabri o topico, porque ele esta dando calculou errado.
exemplo
entao quando eu faço o calculo em ambos, ele me esta dando uma hora a mais.
veja
hora: 17:30
hora: 17:30
hora: 10:30
---------------------
total 45:30 é o correto mas ele me esta dando 46:30
ma ideia pessoal
algu
Você provavelmente não usou o Math.Floor como eu usei no meu exemplo.
Ele está lá por um motivo importante e você deve ter acabado de descobrir o porque.
opa tava testando a variavel que me repassou, ele deu certo sim entao agora estou com o mesmo problema ao momento eu de subtrair o valor exemplo eu tenho numa coluna TIPO de atividade
registrado como POSITIVA OU NEGATIVA
se eu tenho 4 registros negativas e 6 registro positivos
ele soma os valores certo conforme a imagem acima.
o problema que estou tendo é que ele me apresenta erro do total de horas ao momento que eu faço calculo por exemplo anterior
positiva: 17:30
positiva: 17:30
positiva: 17:30
-------------------
total: 52:30
negativa: 10:30
negativa: 10:30
---------------------
total 21:00
o correto seria 31:30, porem ele me esta retornando 32:30
ja mudei tudo, mesmo assim ele me apresenta esse valor
Citação::
Sem você postar nenhum código não tem como dizer o que está errado. Mas já adianto que o TimeSpan não erra a conta, o mais provável é você arredondando os valores da forma errada para exibir como texto.
Provavelmente sim, mas não estou conseguindo achar alguma falha no código
Citação:Dim valor_Positivo As New TimeSpan(0, 0, 0, 0)
Dim Valor_Negativo As New TimeSpan(0, 0, 0, 0)
Dim ValorTotal As New TimeSpan(0, 0, 0, 0)
Private Sub CalcularHoras()
Try
For Each Linha As DataGridViewRow In Me.dgvRegistros.Rows
If Linha.Cells(3).Value = [Ô]POSITIVA[Ô] Then
[ô]Executa a soma dos valores da coluna 5
valor_Positivo = valor_Positivo + TimeSpan.Parse(Linha.Cells(5).Value)
ElseIf Linha.Cells(3).Value = [Ô]NEGATIVA[Ô] Then
[ô]Executa a soma dos valores da coluna 5
Valor_Negativo = Valor_Negativo + TimeSpan.Parse(Linha.Cells(5).Value)
End If
Next
Me.txtTOTAL_DE_MIN_POSITIVAS.Text = (String.Format([Ô]{0:00}:{1:00}[Ô], Math.Floor(valor_Positivo.TotalHours), valor_Positivo.Minutes))
Me.txtTOTAL_DE_MIN_NEGATIVAS.Text = (String.Format([Ô]{0:00}:{1:00}[Ô], Math.Floor(Valor_Negativo.TotalHours), Valor_Negativo.Minutes))
ValorTotal = (valor_Positivo).Subtract(Valor_Negativo)
Me.txtTOTAL_DE_HORAS_POSITIVA.Text = (String.Format([Ô]{0:00}:{1:00}[Ô], Math.Floor(ValorTotal.TotalHours), ValorTotal.Minutes))
valor_Positivo = Nothing
Valor_Negativo = Nothing
ValorTotal = Nothing
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Neste projeto apenas um formulário preenchendo o datagriview
e um botão para calcular.
Ai tu vai ver que seu código está correto.
Fiz um teste com ele funcionou de forma satisfatória,
com os mesmos dados da sua postagem.