alguna operacion con fecha para sacar la cantidad de meses de dos fechas

879 views
Skip to first unread message

Marcelo Barberis

unread,
Apr 27, 2011, 4:21:38 AM4/27/11
to publicesvfoxpro
Amigos
Alguien ha trabajado con con operaciones con fechas para sacar la cantidad de meses transcurridos entre dos fechas, pero exactamente?
Yo estuve probando con esta operacion pero no me sale bien parece

nDias = (DATE() - fecha_nacimiento)
nMes  = INT(MOD(nDias,365)/30)

Yo quiero sacar algo como asi:
fecha actua: 27/04/2011
fecha_nacimiento: 01/03/2011
resultado: 1,27 es decir 1 mes y 27 dias
*****************************************************
fecha actual: 27/04/2011
fecha_nacimiento: 01/04/2009
resultado: 24,27 es decir 24 meses y 27 dias

Alfonso Arias Lemas

unread,
Apr 27, 2011, 7:25:30 AM4/27/11
to publice...@googlegroups.com
Sugerencia:

fecha actua: 27/04/2011
fecha_nacimiento: 01/03/2011

vMes=int((date(2011,4,27)-date(2011,3,1))/30)
vDias=(date(2011,4,27)-date(2011,3,1))%30

resultado=allt(str(vMes))+","+allt(str(vDias))

Saludos,
   Alfonso


De: Marcelo Barberis <alexm...@gmail.com>
Para: publicesvfoxpro <publice...@googlegroups.com>
Enviado: miércoles 27 de abril de 2011 7:21
Asunto: Re: [vfp] alguna operacion con fecha para sacar la cantidad de meses de dos fechas

Jose Oscar Vogel

unread,
Apr 27, 2011, 7:34:02 AM4/27/11
to publice...@googlegroups.com
Fijate en la funcion que te adjunte, te calcula la cantidad de dias, meses y años transcurridos entre dos fechas, la funcion no es mia la baje de algun lado de internet que no recuerdo, lo unico que le he agregado yo es insertar todos los valores en un cursor llamado datos, con lo cual al retornar la funcion tienes un cursor donde estan los tres valores.-
 
espero te sirva
 
saludos

--
Prof. Jose Oscar Vogel
Garuhapé - Misiones
CP 3334
Cel: 03743-15667526
MSN: oscar...@gmail.com
Twitter: @ovogel23
Facebook: oscarvogel

meses.prg

Ricardo Pina

unread,
Apr 27, 2011, 9:26:19 AM4/27/11
to publice...@googlegroups.com
Hola Marcelo

Fijate en la funcion gomonth()

Saludos
--
Ricardo Pina
D&SIP
Desarrollo y Servicios Informáticos Profesionales
www.dsip.com.ar

Cesar Julio Pacheco Escalante

unread,
Apr 27, 2011, 9:34:16 AM4/27/11
to publice...@googlegroups.com
hace bastante tiempo lo baje..... no recuerdo pero me fue de gran ayuda...
 
espero te sirva...
 
 
SET DATE BRITISH
?dif_amd(
CTOD("22/10/1958"),DATE())
*-----------------------------------------------------
* FUNCTION Dif_AMD(tdIni, tdFin)
*-----------------------------------------------------
* Calcula la diferencia entre dos fechas en:
* años, meses y días
* Usa la función DiasDelMes()
*-----------------------------------------------------
FUNCTION Dif_AMD(tdIni, tdFin)
LOCAL ldAux, lnAnio, lnMes, lnDia, lcRet
*--- Fecha inicial siempre menor
IF tdIni>tdFin
ldAux = tdIni
tdIni = tdFin
tdFin = ldAux
ENDIF
lnAnio = YEAR(tdFin) - YEAR(tdIni)
ldAux =
GOMONTH(tdIni, 12 * lnAnio)
*--- No cumplio el año aun
IF ldAux > tdFin
lnAnio = lnAnio - 1
ENDIF
lnMes = MONTH(tdFin) - MONTH(tdIni)
IF lnMes < 0
lnMes = lnMes + 12
ENDIF
lnDia = DAY(tdFin) - DAY(tdIni)
IF lnDia < 0
lnDia = lnDia + DiasDelMes(tdIni)
ENDIF
*--- Si el dia es mayor, no cumplio el mes
IF (DAY(tdFin) < DAY(tdIni))
IF lnMes = 0
lnMes = 11
ELSE
lnMes = lnMes - 1
ENDIF
ENDIF
lcRet = ALLTRIM(STR(lnAnio))+ " AÑOS, " + ;
ALLTRIM(STR(lnMes))+ " MESES Y " + ;
ALLTRIM(STR(lnDia))+ " DIAS."
RETURN lcRet
ENDFUNC
*-----------------------------------------------------
* FUNCTION DiasDelMes(dFecha)
*------------------------------------------------
* Retorna los días de un mes. Usada por Dif_AMD
*------------------------------------------------
FUNCTION DiasDelMes(dFecha)
LOCAL ld
ld =
GOMONTH(dFecha,1)
RETURN DAY(ld - DAY(ld))
ENDFUNC
 
César Julio..

 

From: ric...@gmail.com
Date: Wed, 27 Apr 2011 10:26:19 -0300
Subject: Re: [vfp] alguna operacion con fecha para sacar la cantidad de meses de dos fechas
To: publice...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages