CALCULO HORAS X QUANTIDADE

XXXANGELSXXX 15/08/2011 17:33:28
#381763
Amigos, estou precisando fazer uma funcao que estou quebrando cabeça, preciso calcular o valor da hora de acordo com o que defini, exemplo, tenho os campos VALOR HORA X QUANTIDADE para dar o valor total, so que meu calculo so calcula correto quando coloco inteiro, exemplo

valor hora = 80,00 x 2 horas = 160,00

se a hora for quebrada tipo.. 1,30 ou seja, 1 hora e 30 minutos o calculo sai incorreto, alguem tem um calculo de horas x valor para me passar por favor??? desde ja agradeço muito..
JANDER 15/08/2011 17:38:27
#381765
Fiz algo parecido com isso

basta vc verificar a casa decimal, quando a mesma for maior que 60 vc soma mais 1
ex;:


12,80

vai ficar assim
13,60

só isso!
XXXANGELSXXX 15/08/2011 17:39:34
#381766
Citação:

:
Fiz algo parecido com isso

basta vc verificar a casa decimal, quando a mesma for maior que 60 vc soma mais 1
ex;:


12,80

vai ficar assim
13,60

só isso!

blza amigo, nao entendi a logica.. tem como ser mais especifico por favor?
FEDERHEN 16/08/2011 11:53:53
#381813
Transforma a tua hora em minutos e depois divide por 60
assim 1:30 será representado por 1,50 e o calculo sairá correto

a = [Ô]01:30[Ô]
b = (val(mid(a,1,2))*60) + (val(mid(a,4,2)))
c = b/60

RODRIGOFERRO 16/08/2011 12:47:16
#381821
Exatamente, para se ter precisão/facilidade ao se trabalhar com horas tem que converter em minutos.

Abraços
ACG1574 16/08/2011 15:42:03
#381833
bem, essa logica acima, fiz o teste aqui , nao da muito certo nao, veja bem com esses numeros.

a = [Ô]01:33[Ô]
b = (val(mid(a,1,2))*60) + (val(mid(a,4,2)))
c = b/60

seria: 60 + 33 = 93 / 60 = 01:55
e teria que dar: 01:53 pq aumentou só 3 minutos.
RODRIGOFERRO 16/08/2011 16:05:12
#381838
use essa função pra retornar os minutos...



Dim strValor as string = [Ô]01:33[Ô]
Dim inthr As Integer, inthr2 As Integer
inthr = CInt(Mid(strValor, 1, InStr(strValor, [Ô]:[Ô]) - 1))
inthr2 = CInt(Mid(strValor, InStr(strValor, [Ô]:[Ô]) + 1, Len(strValor)))

MsgBox ((inthr * 60) + inthr2)



Total: [Ô]93[Ô]
MARCELO.TREZE 16/08/2011 19:34:08
#381843
posta seu código para que possamos analizar, a principio acredito que vc esteja declarando alguma variável de forma errada.

se vc declarar a hora como integer dá esse erro, vc terá de declarar como double, ou converter na hora (CDbl)

exemplo:

Private Sub Command1_Click()
Dim Hora As String [txt-color=#007100][ô] Declarei como string[/txt-color]
Dim Quant As Integer
Dim ValorHora As Double

Hora = [Ô]80,00[Ô]
Quant = 2
ValorHora = CDbl(Hora) * Quant [txt-color=#007100][ô]Aqui converti para double (CDbl)[/txt-color]
MsgBox ValorHora
End Sub


.
FEDERHEN 17/08/2011 08:15:18
#381853
Citação:

:
a = [Ô]01:33[Ô]
b = (val(mid(a,1,2))*60) + (val(mid(a,4,2)))
c = b/60

seria: 60 + 33 = 93 / 60 = 01:55



O resultado não é 01:55 e sim 1,55 e está corretissimo.]
Agora basta multiplicar pelo outro valor e voce terá o resultado desejado.
Exemplo: 1,55 * 80 = 124,00 (supondo que 80,00 seja o valor hora)

Tópico encerrado , respostas não são mais permitidas