Amigos...
Hay alguna funcion que me devuelva entre dos fecha la cantidad de AÑOS/MESES/DIAS ?
Chas gracias
dbarrio
Argentina
* Calculo AÑOS/MESES/DIAS entre 2 Fechas (por David Barrio)
Function CalculaAMD(Fecha1,Fecha2)
local Tiempo:='',FechaX,CantiMeses:=0
If Fecha1>Fecha2 ; return '' ; EndIf
Set Date ANSI
FechaX:=If( ctod(str(Year(Fecha2))+'.'+substr(dtoc(Fecha1),5,6)) > Fecha2,;
ctod(str(Year(Fecha2)-1)+'.'+substr(dtoc(FechaX),5,6)) ,;
ctod(str(Year(Fecha2))+'.'+substr(dtoc(Fecha1),5,6)) )
Tiempo:=If(Year(FechaX)-Year(Fecha1)<>0,;
Str(Year(FechaX)-Year(Fecha1),2)+;
' Año'+If(Year(FechaX)-Year(Fecha1)>1,'s',''),'')
While If(Month(FechaX)=12,;
ctod(str(Year(FechaX)+1,4)+'.01.'+str(Day(FechaX),2)),;
ctod(str(Year(FechaX),4)+'.'+str(Month(FechaX)+1,2)+'.'+str(Day(FechaX),2)) ) < Fecha2
FechaX := If(Month(FechaX)=12,;
ctod(str(Year(FechaX)+1,4)+'.01.'+str(Day(FechaX),2)),;
ctod(str(Year(FechaX),4)+'.'+str(Month(FechaX)+1,2)+'.'+str(Day(FechaX),2)) )
CantiMeses := CantiMeses + 1
EndDo
Tiempo:=alltrim(Tiempo+If(CantiMeses<>0,' '+Str(CantiMeses,2)+;
' Mes'+If(CantiMeses>1,'es',''),'')+;
If(Fecha2-FechaX<>0,' '+str((Fecha2-FechaX),3)+;
' Dia'+If(Fecha2-FechaX>1,'s',''),''))
*msginfo(Tiempo)
Set Date BRITISH
Return Tiempo
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 31 guests