CALCULO HORAS X QUANTIDADE
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..
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..
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!
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!
Citação:blza amigo, nao entendi a logica.. tem como ser mais especifico por favor?:
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!
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
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
Exatamente, para se ter precisão/facilidade ao se trabalhar com horas tem que converter em minutos.
Abraços
Abraços
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.
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.
use essa função pra retornar os minutos...
Total: [Ô]93[Ô]
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[Ô]
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:
.
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
.
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