CALCULAR ESTA DIFERENCA DE HORAS

MARCOS 22/02/2010 18:36:18
#335074
Bom dia, Pessoal!
Eu tentei usar a função Datadiff para calcular a diferença em horas, de duas datas. Mas, não esta funcionando.
Eu fiz:


Dim Data1 As Date
Dim Data2 As Date
Dim resultado As Integer

Data1= [Ô]01/01/2010[Ô]
Data2= [Ô]20/01/2010[Ô]

Resultado = DataDiff( [Ô]h[Ô], Data1,Data2)

Obs: No meu caso, tem que retornar em horas.Algum colega, sabe o que pode estar errado???
FABIO.LOUREIRO 22/02/2010 18:44:05
#335075

A funçào é DateDiff não DataDiff
MARCOS 23/02/2010 10:46:53
#335114
Pessoa,
Desculpe,mas mesmo fazendo a correção e escrevendo:

Dim Data1 As Date
Dim Data2 As Date
Dim resultado As Integer

Data1= [Ô]01/01/2010[Ô]
Data2= [Ô]20/01/2010[Ô]

Resultado = DateDiff( [Ô]h[Ô], Data1,Data2)

Continua retornando errado, não retorna nenhuma mensagem de erro. Mas, retorna um número de 6 digitos que não tem
nada a ver com o número de horas. Algum colega, sabe porque a função Datediff não funciona, para calcular
a diferença entre duas datas em [Ô]Horas[Ô]???




MARCELO.TREZE 23/02/2010 11:03:09
#335116
Resposta escolhida
colega eu fiz o teste aqui e funcionou

para desencargo de conciencia tente assim

Dim Data1           As   Date
Dim Data2 As Date
Dim resultado As Integer

Data1= [Ô]01/01/2010 00:00:00[Ô]
Data2= [Ô]20/01/2010 00:00:00[Ô]

Resultado = DateDiff( [Ô]h[Ô], Data1,Data2)
MsgBox Resultado

NETMANIA 23/02/2010 11:06:15
#335117
Eu já usei a função DateDiff para calcular tempo (no caso, período de dias). O que pode estar acontecendo é que a quantidade de horas entre os dias de exemplo é muito grande e retorna um número estranho.

Você poderia postar este valor para ajudar a verificar o erro?
MARCELO.TREZE 23/02/2010 11:14:00
#335118
Fiz o teste com a função acima das duas maneiras e funcionaram normalmente ambas me retornam 456 horas

se não estiver usando o sp6 do visual basic tente instala-lo


RICART 23/02/2010 11:18:17
#335119
Veja se não está havendo algum problema com a formatação do campo:

Dim Data1 As Date
Dim Data2 As Date
Dim resultado As Integer

Data1 = [Ô]2010/1/1 00:00:00[Ô] [ô]formato yyyy/MM/dd HH:mm:ss ou seja format(CDate(SEU_CAMPO_TEXTO_DATA),[Ô]yyyy/MM/dd HH:mm:ss[Ô]))
Data2 = [Ô]2010/1/20 00:00:00[Ô]

resultado = DateDiff([Ô]h[Ô], Data1, Data2)
MsgBox(resultado) [ô] neste caso, deverá retornar 456 são 19d * 24h, pois conta 0 hora do dia 20, por isso não conta com mais 24h do dia 20.

MARCOS 23/02/2010 16:47:15
#335157
Prezados colegas,
Depois de depurar o código, descobri que havia de fato um problema
com a formatação de uma das datas! Mas, quando pensei estar tudo
resolvido, eis que o setor comercial me informa que existe mais uma regra de
negócio que esqueceram de mencionar:

Precisam,que os fim-de-semana não sejam considerados!

Ou seja, agora preciso calcular a diferença em horas, de duas datas como antes, só que
o sábado e domingo não pode ser levado em consideração nesta contagem das horas.
Isto é possível???


MADMAX 23/02/2010 16:52:26
#335158
é possivel vc primeiro vendo quantos dias do periodo iram cair em fim de semana , depois vc faz o date diff normalmente , no final faz o resultado do datediff menos o numero de horas que cairão em fim de semana
Tópico encerrado , respostas não são mais permitidas