Polirep Posted June 25, 2002 Report Share Posted June 25, 2002 Alguém sabe informar se existe algum recurso para calcular horas entre datas? Quote Link to comment Share on other sites More sharing options...
gilmer Posted June 26, 2002 Report Share Posted June 26, 2002 Olá, No FW não existe nada pronto citação: Alguém sabe informar se existe algum recurso para calcular horas entre datas? id=quote>id=quote> Quote Link to comment Share on other sites More sharing options...
vagner Posted June 19, 2012 Report Share Posted June 19, 2012 Olá Gente, Reativei o tópico, por não ter achado isso em xharbour, se tiver por favor me passem mas de qq forma montei o meu, se alguém precisar, esteja a vontade /********************************************************* * Função : DateDiff() - Função para Hora de entre duas datas * Data : 19/06/2012 - 16:41:46 Por : Vagner * Revisado em : 19/06/2012 - 16:41:48 Por : Vagner * Parâmetros : * cData1 - Primeira Data Formato DD/MM/AAAA HH:MM:SS * cData2 - Segunda Data Formato DD/MM/AAAA HH:MM:SS (Default DateTime()) **********************************************************/ Func DateDiff(cData1,cData2) Local nFina,nInic,nTemp,cReto Local nHorI,nHorF Local nMinI,nMinF Local nSecI,nSecF Local nDias Default cData2 := TToC(DateTime()) nDias := CtoD(Left(cData2,10))-CtoD(Left(cData1,10)) nHorI := Hour(CToT(cData1)) nHorF := Hour(CToT(cData2)) nMinI := Minute(CToT(cData1)) nMinF := Minute(CToT(cData2)) nSecI := Secs(CToT(cData1)) nSecF := Secs(CToT(cData2)) nFina := nHorF * 3600 +; nMinF * 60 +; nSecF nInic := nHorI * 3600 +; nMinI * 60 +; nSecI nTemp := (nFina-nInic) cHora := AllTrim(Str(Val(StrZero(Int(Mod((nTemp/3600),24)),2,0))+(nDias*24))) cReto := cHora+":"+; StrZero(Int(Mod((nTemp/60 ),60)),2,0)+":"+; StrZero(Int(Mod((nTemp ),60)),2,0) Retu(cReto) id=code>id=code>Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
emotta Posted June 19, 2012 Report Share Posted June 19, 2012 Semana que vem este tópico faz 10 anos... rs abraços citação:Olá Gente, Reativei o tópico, por não ter achado isso em xharbour, se tiver por favor me passem mas de qq forma montei o meu, se alguém precisar, esteja a vontade /********************************************************* * Função : DateDiff() - Função para Hora de entre duas datas * Data : 19/06/2012 - 16:41:46 Por : Vagner * Revisado em : 19/06/2012 - 16:41:48 Por : Vagner * Parâmetros : * cData1 - Primeira Data Formato DD/MM/AAAA HH:MM:SS * cData2 - Segunda Data Formato DD/MM/AAAA HH:MM:SS (Default DateTime()) **********************************************************/ Func DateDiff(cData1,cData2) Local nFina,nInic,nTemp,cReto Local nHorI,nHorF Local nMinI,nMinF Local nSecI,nSecF Local nDias Default cData2 := TToC(DateTime()) nDias := CtoD(Left(cData2,10))-CtoD(Left(cData1,10)) nHorI := Hour(CToT(cData1)) nHorF := Hour(CToT(cData2)) nMinI := Minute(CToT(cData1)) nMinF := Minute(CToT(cData2)) nSecI := Secs(CToT(cData1)) nSecF := Secs(CToT(cData2)) nFina := nHorF * 3600 +; nMinF * 60 +; nSecF nInic := nHorI * 3600 +; nMinI * 60 +; nSecI nTemp := (nFina-nInic) cHora := AllTrim(Str(Val(StrZero(Int(Mod((nTemp/3600),24)),2,0))+(nDias*24))) cReto := cHora+":"+; StrZero(Int(Mod((nTemp/60 ),60)),2,0)+":"+; StrZero(Int(Mod((nTemp ),60)),2,0) Retu(cReto) id=code>id=code>Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Quote Link to comment Share on other sites More sharing options...
william Posted June 19, 2012 Report Share Posted June 19, 2012 olá , uso a seguinte rotina em 1 sistema de estacionamento rotativo, veja se te ajuda: William *dData1 := CtoD("01/11/2007") *dData2 := CtoD("02/11/2007") *cHora1 := "21:00:00" *cHora2 := "00:30:00" //-------------------------------------------------------------- Function Intervalo( dData1, dData2, cHora1, cHora2 ) local nDias := dData2-dData1 local nHoras, nSec1, nSec2, nSobra, cH, cM, cS nSec1 := Segundos( cHora1 ) nSec2 := Segundos( cHora2 ) if nSec1 > nSec2 nDias-- nSobra := Segundos("24:00:00")-nSec1 + nSec2 else nSobra := nSec2 - nSec1 endif cH := Alltrim(str( nDias*24+int(nSobra/3600) ) ) cM := StrZero( int( nSobra%3600/60 ), 2 ) cS := StrZero( int( nSobra%3600%60 ), 2 ) Return cH+":"+cM+":"+cS //-------------------------------------------------------------- Function Segundos( cHora ) Return ( Val(Left(cHora, 2))*3600 + Val(SubStr(cHora, 4,2))*60 + Val(Right(cHora,2)) ) ********************************************************** id=code>id=code>"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários." Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted June 19, 2012 Report Share Posted June 19, 2012 citação:/********************************************************* * Função : DateDiff() - Função para Hora de entre duas datas * Data : 19/06/2012 - 16:41:46 Por : Vagner * Revisado em : 19/06/2012 - 16:41:48 Por : Vagner * Parâmetros : * cData1 - Primeira Data Formato DD/MM/AAAA HH:MM:SS * cData2 - Segunda Data Formato DD/MM/AAAA HH:MM:SS (Default DateTime()) **********************************************************/ id=quote>id=quote>2 segundos para revisar o programa, ótima marca. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
vagner Posted June 20, 2012 Report Share Posted June 20, 2012 Só agora fui precisar citação:Semana que vem este tópico faz 10 anos... rs abraços Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD id=quote>id=quote>Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
vagner Posted June 20, 2012 Report Share Posted June 20, 2012 citação: citação:/********************************************************* * Função : DateDiff() - Função para Hora de entre duas datas * Data : 19/06/2012 - 16:41:46 Por : Vagner * Revisado em : 19/06/2012 - 16:41:48 Por : Vagner * Parâmetros : * cData1 - Primeira Data Formato DD/MM/AAAA HH:MM:SS * cData2 - Segunda Data Formato DD/MM/AAAA HH:MM:SS (Default DateTime()) **********************************************************/ id=quote>id=quote>2 segundos para revisar o programa, ótima marca. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO id=quote>id=quote>Significa que não houve revisão, funcionou de prima , porém já terá alguma mudança hoje Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 20, 2012 Report Share Posted June 20, 2012 citação: citação: citação:/********************************************************* * Função : DateDiff() - Função para Hora de entre duas datas * Data : 19/06/2012 - 16:41:46 Por : Vagner * Revisado em : 19/06/2012 - 16:41:48 Por : Vagner * Parâmetros : * cData1 - Primeira Data Formato DD/MM/AAAA HH:MM:SS * cData2 - Segunda Data Formato DD/MM/AAAA HH:MM:SS (Default DateTime()) **********************************************************/ id=quote>id=quote>2 segundos para revisar o programa, ótima marca. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO id=quote>id=quote>Significa que não houve revisão, funcionou de prima , porém já terá alguma mudança hoje Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" id=quote>id=quote>Então não funcionou de "prima".... kkkkkkkkkkkkk João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
vagner Posted June 20, 2012 Report Share Posted June 20, 2012 citação: citação: citação: citação:/********************************************************* * Função : DateDiff() - Função para Hora de entre duas datas * Data : 19/06/2012 - 16:41:46 Por : Vagner * Revisado em : 19/06/2012 - 16:41:48 Por : Vagner * Parâmetros : * cData1 - Primeira Data Formato DD/MM/AAAA HH:MM:SS * cData2 - Segunda Data Formato DD/MM/AAAA HH:MM:SS (Default DateTime()) **********************************************************/ id=quote>id=quote>2 segundos para revisar o programa, ótima marca. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO id=quote>id=quote>Significa que não houve revisão, funcionou de prima , porém já terá alguma mudança hoje Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" id=quote>id=quote>Então não funcionou de "prima".... kkkkkkkkkkkkk João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Melhoria não significa que não tenha funcionado hehehehehe Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 20, 2012 Report Share Posted June 20, 2012 AHHHHHHAAAAMMMMMMMMMMMMMMMMM, KKKKKKKKKKKKKKKKKKK João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
vagner Posted June 20, 2012 Report Share Posted June 20, 2012 Olá, Houve uma alteração no código, eu havia testado somente com 2º horario maior que o primeiro, já corrigido basta trocar cHora := AllTrim(Str(Val(StrZero(Int(Mod((nTemp/3600),24)),2,0))+(nDias*24))) id=code>id=code>por cHora := AllTrim(Str(Int(Mod((nTemp/3600),24))+( Iif(nDias > 0,(nDias-Iif(nTemp < 0,1,0)),0) *24))) id=code>id=code>Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.