Jump to content
Fivewin Brasil

como obter resultado em dias com data entra e data de volucao


microfly

Recommended Posts

Alguém poderia me dar uma dica de como e como obter resultados calculando datas
tenho um contrato que foi entregue o veiculo em 02/04/2016 as 10.00 e a devolução esta prevista para dia 12/04/2016 as 23.59 , teria que dar 11 diárias
como obter esse resultado via sistema vc tem alguma funcao?
eu estou fazendo assim mais não esta correto só vem 9 dias
--------------------------------------------------------------------------------
Function Ver_hora( oDbfctr)
--------------------------------------------------------------------------------
local dData2,dData1
local nHoras, nSec1, nSec2, nSobra, cH, cM, cS
Local nDiae,nMese,nAnoe,nDiad,nMesd,nAnod
Local nDias:= 0,cHora1,cHora2,nTothrtra:=0
nDias:= (oDbfctr:Dtdevfl-oDbfctr:Dataent)
If oDbfctr:Tipoctr=1 .and. nTipmot=1
cHora1:= oDbfctr:Horaent
cHora2:= oDbfctr:Hrdevfl
nDiae:=Day(oDbfctr:Dataent)
nMese:=Month(oDbfctr:Dataent)
nAnoe:=Year(oDbfctr:Dataent)
nDiad:=Day(oDbfctr:Dtdevfl)
nMesd:=Month(oDbfctr:Dtdevfl)
nAnod:=Year(oDbfctr:Dtdevfl)
dData1 := CtoD(Strzero(nDiae,2)+"/"+Strzero(nMese,2)+"/"+Str(nAnoe,4))
dData2 := CtoD(Strzero(nDiad,2)+"/"+Strzero(nMesd,2)+"/"+Str(nAnod,4))
nSec1 := Segundos(oDbfctr:Horaent)
nSec2 := Segundos(oDbfctr:Hrdevfl)
if nSec1 > nSec2
nDias--
nSobra := Segundos("24:00:00")-nSec1 + nSec2
else
nSobra := nSec2 - nSec1
endif
cH := StrZero(( nDias*24+int(nSobra/3600)),3)
cM := StrZero( int( nSobra%3600/60 ), 2 )
nTothrtra:=" : "
nTothrtra:=cH+":"+cM
oDbfctr:Diarias:=nDias
oDbfctr:Tothrtra:=(nDias*Val(oDbfctr:Limitehora))
oDbfctr:Horaextra:=Val(nTothrtra)-vAL(oDbfctr:Limitehora)
oDbfctr:Tothrfinal:=(oDbfctr:Tothrtra+oDbfctr:Horaextra)
oDbfctr:Hrlimprev:=oDbfctr:Tothrfinal
Endif
oDataent:Refresh()
oDtdevfl:Refresh()
oDiarias:Refresh()
oHoraextra:Refresh()
oTothrfinal:Refresh()
oTothrtra:Refresh()
oHrlimprev:Refresh()
Return (.t.)
-------------------------------------------------------------------------------
Function Segundos( cHora )
Return ( Val(Left(cHora,2))*3600 + Val(SubStr(cHora, 4,2))*60 )
-------------------------------------------------------------------------------

Luiz Carlos Nogueira (Batata)

www.microfly.com.br

suporte@microfly.com.br

Skype suporte.microfly

São Paulo - Capital - Zona Norte

Obrigado a todos , fico no aguardo

Link to comment
Share on other sites

Veja se se coaduna ao que queres:




Hora_entra
Hora_sai
Dia_entra
Dia_sai

V_tempo = 0 && Tempo decorrido.

V_dias = 0

V_dias = Dia_sai - Dia_entra

//verificar ainda se está dentro do mesmo mes, fazendo a conversão para dias, caso seja mes diferente.

If v_dias # 0

Hora_sai = Hora_sai + (v_dias * 24)

endif

v_TEMPO = (ELAPTIME( Hora_entra,Hora_sai),5,1)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...