Funcion para calcular meses y dias transcurridos entre 2 fechas

90 views
Skip to first unread message

Luis Leon

unread,
Oct 20, 2016, 4:28:59 PM10/20/16
to foro vfp


Estimados necesito hacer un calculo y deseo determinar los meses y días transcurridos entre 2 fechas , algún amigo que disponga de esa función, que me pueda proporcionar

 

 

Gracias

 

 

Luis Leon

 

Allan Raúl Acuña

unread,
Oct 20, 2016, 4:38:38 PM10/20/16
to foro vfp


Fechas 

http://comunidadvfp.blogspot.com/search/?q=fechas


Saludos cordiales.

Lic. Allan Ra??l Acu??a
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroam??rica

De: publice...@googlegroups.com <publice...@googlegroups.com> en nombre de Luis Leon <leon-...@hotmail.com>
Enviado: jueves, 20 de octubre de 2016 02:28:53 p.m.
Para: foro vfp
Asunto: [vfp] Funcion para calcular meses y dias transcurridos entre 2 fechas
 

Víctor Hugo Espínola Domínguez

unread,
Oct 20, 2016, 6:20:37 PM10/20/16
to publice...@googlegroups.com
Adjunto función que calcula diferencia entre fechas en años, meses y días,

Saludos,
Víctor.
Lambaré - Paraguay.

diffechas.prg

panchimancuso

unread,
Oct 20, 2016, 6:37:44 PM10/20/16
to Comunidad de Visual Foxpro en Español, leon-...@hotmail.com
Hola hay muchas funciones en la wed yo uso esta y anda muy bien
van dos yo uso la primera
*-----------------------
FUNCTION Edad2(Fec2,Fec1)
* Margen de error: 1 día.
******
public eda
Dif=Fec2-Fec1
sumar = INT(Dif/1461)
Var1=Dif/365 &&Con decimales
Anos=INT(Var1) &&Entero, indicará los años.
Var1=Var1-Anos &&Tomando el resíduo decimal.
Var1=Var1*12 &&Calculando los meses
Meses=INT(Var1) && El Entero
Var1=(Var1-Meses)*30
Dias=INT(Var1)-Sumar
if dias < 0
   dias = 28
endif    
eda=ALLTRIM(STR(Anos))+" Años, "+ALLTRIM(STR(Meses))+" Meses y "+ALLTRIM(STR(Dias))+" Días."

RETURN eda


*******************************************
procedure edadx
parameters nac
*******************************************
*public edax
hoy=(date())
edax=space(22)
if empty(nac)
edax="ERROR en Fecha Nac. !!!" 
return(edax)
endif
xx=1
do while xx=1
resto=0
xm=0
aad=year(date())
aan=0
dia_totn=0
dia_totd=0
interm=0.00
annos=0
xd=0.00
xl=0.00
xmchr=space(2)
edad=space(3)
annonaci=0
aaan=0.00
restoaaan=0
        mesdate=0
        mesnaci=0
dias=0
aan=year(nac)
annonaci=aan
aaan=aan/4
restoaaan=aan%4
aan=aan*365
aad=aad*365
mmd=month(date())
mmn=month(nac)
        mesdate=mmd
        mesnaci=mmn
mmd=mmd*30.4
mmn=mmn*30.4
ddd=day(date())
ddn=day(nac)
dia_totd=aad+mmd+ddd
dia_totn=aan+mmn+ddn
resto=dia_totd-dia_totn
do case
   case ddd = ddn
dias=0
   case ddd > ddn
        dias=ddd - ddn
       case ddd < ddn 
           if mesnaci=4 .or. mesnaci=6 .or. mesnaci=9 .or. mesnaci=11
               dias=(30 - ddn)+ddd
endif
if mesnaci= 2
  dias=(28 - ddn)+ddd
endif  
           if mesnaci=1 .or. mesnaci=3 .or. mesnaci=5 .or. mesnaci=7 .or. mesnaci=8 .or. mesnaci=10 .or. mesnaci=12
               dias=(31 - ddn)+ddd
endif
       case ddd < ddn .and. mesenaci= 2
if restoaaan = 0
               dias=(29 - ddn)+ddd
else
               dias=(28 - ddn)+ddd
endif
endcase
*----------------------------------------
interm=resto/365
annos=int(interm)              && anios
xd=interm-annos
xl=mod(resto,365)/30.4
xm=int(xl)
xmchr=transform(xm,"99")        
aa=iif(annos = 1,"Año",'Años')
mm=iif(xm = 1 ,'Mes', 'Meses')
dz=iif(dias = 1,'Dia', 'Dias ')
edax=" "+ltrim(str(annos,2))+" &aa "+ltrim(xmchr)+" &mm "+ltrim(str(dias,2))+" &dz "
*----------------------------------------
    return(edax)
enddo
*************************************
saludos espero te sirvan
Reply all
Reply to author
Forward
0 new messages