Determinar el número de meses

28/06/2006 - 19:04 por Walther | Informe spam
Hola Grupo:
Quisiera preguntarles cómo pudiera determinar el número de meses entre
fechas de años distintintos, y que en la primera fecha se incluya el mes y
en la segunda no. Por ejemplo 30/06/06 - 31/01/05 que de como resultado 17
meses (o sea que tome desde febrero de 2005).

Por su atención,

Gracias.

Walther Aguilar
 

Leer las respuestas

#1 Luis María Guayán
27/06/2006 - 20:54 | Informe spam
Mira si esta función te sirve, pero cuenta los meses una vez cumplidos

? Meses(DATE(2006,06,30),DATE(2005,01,31))
? Meses(DATE(2006,06,30),DATE(2005,01,30))

FUNCTION Meses(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
* 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
RETURN lnMes + lnAnio * 12
ENDFUNC

Nota: Tomada de "Calcular la diferencia entre dos fechas en años, meses y
días"
http://www.portalfox.com/modules.ph...e&sidd


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Walther" escribió en el mensaje
news:%
Hola Grupo:
Quisiera preguntarles cómo pudiera determinar el número de meses entre
fechas de años distintintos, y que en la primera fecha se incluya el mes y
en la segunda no. Por ejemplo 30/06/06 - 31/01/05 que de como resultado 17
meses (o sea que tome desde febrero de 2005).

Por su atención,

Gracias.

Walther Aguilar


Preguntas similares