FoxPro/Visual FoxPro - Diferencia de meses entre dos fechas.

   
Vista:

Diferencia de meses entre dos fechas.

Publicado por Percy (8 intervenciones) el 17/11/2009 01:17:26
Por favor necesito de la ayuda de ustedes, tengo que obtener la diferencia de meses entre dos fechas.
Ejemplo:
Tengo la siguiente fecha:
Campo a: 20091006
Campo b: 20070620
***tengo que hallar cuantos meses han transcurrido entre la fecha de la columna a y la columna b; teniendo en cuenta que los primeros 4 dígitos es el año, los 2 siguientes es el mes, y los dos últimos el día.
Por favor, amigos si me pueden dar una ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Diferencia de meses entre dos fechas.

Publicado por Roberto (123 intervenciones) el 17/11/2009 01:36:32
Revisa este enlace,

http://www.portalfox.com/index.php?name=News&file=article&sid=1162&mode=nested&order=0&thold=0

Busca,

Diferencia entre dos fechas en años, meses y días: Calcula la cantidad de años, meses y días entre dos expresiones de tipo Date pasadas como parámetros. (esta función utiliza la UDF DiasDelMes()).

Espero que te sirva,

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Diferencia de meses entre dos fechas.

Publicado por Chucho (66 intervenciones) el 17/11/2009 17:16:55
Hola: Fijate en este código. Probalo con otras fechas a ver si te sirve.

Saludos
Javier

* No se si lo campos son numericos o de texto
* Si son numericos uso str para conversion

SET DATE FRENCH

nCampoA = 20091006
nCampoB = 20070620

cCampoA = STR( nCampoA, 8 )
cCampoB = STR( nCampoB, 8 )

nDiferenciaMeses = nMeses ( cCampoA, cCampoB )

? nDiferenciaMeses
WAIT

FUNCTION nMeses ( cCampoA, cCampoB )
...cAnio = SUBSTR( cCampoA, 1 , 4 )
...cMes = SUBSTR( cCampoA, 5 , 2 )
...cDia = SUBSTR( cCampoA, 7 , 2 )
...dFechaA = CTOD( cDia + "/"+ cMes + "/" + cAnio )

...cAnio = SUBSTR( cCampoB, 1 , 4 )
...cMes = SUBSTR( cCampoB, 5 , 2 )
...cDia = SUBSTR( cCampoB, 7 , 2 )
...dFechaB = CTOD( cDia + "/"+ cMes + "/" + cAnio )

...nDiasDiferencia = dFechaA - dFechaB
...nAñosDiferencia = nDiasDiferencia / 365
...nMesesDiferencia = nAñosDiferencia * 12

RETURN ROUND(nMesesDiferencia, 0 )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar