Autor Tema: Calcular diferencia entre dos fechas [Fox]  (Leído 4015 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Trance

  • Sv Vampire Team ® Founder
  • The Communiter-
  • *****
  • Mensajes: 1655
Calcular diferencia entre dos fechas [Fox]
« : agosto 31, 2007, 10:47:37 am »
Código: [Seleccionar]
*-----------------------------------------------------
* FUNCTION Dif_AMD(tdIni, tdFin)
*-----------------------------------------------------
* Calcula la diferencia entre dos fechas en:
* años, meses y días
* Usa la función DiasDelMes()
*-----------------------------------------------------
fecha1 = cTOD('17/09/2002')
fecha2 = CTOD('17/09/2011')

MESSAGEBOX(Dif_amd(fecha1,fecha2))


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."+;
    ALLTRIM(STR((lnAnio*12+lnmes)))
    **aqui esta para q solo te retorne los meses
    LcRet  = ALLTRIM(STR((lnAnio*12+lnmes)))
  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

Copyleft rcguillen

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #1 : agosto 31, 2007, 10:49:49 am »
Gracias Trance...

Cualquier onda de fox (tengo varios codigos para diferentes cosas) o SQL hay avisan....


Saludos
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado Ramses

  • Sv Member
  • ***
  • Mensajes: 492
  • # apt-get install debian
    • Mi Blog
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #2 : agosto 31, 2007, 10:52:41 am »
Buen codigo :thumbsup:, para la coleccion
shutdown -h now
Mi Blog

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #3 : agosto 31, 2007, 10:54:28 am »
Buen codigo :thumbsup:, para la coleccion

y aqui esta Ramses q es la mera mengambrella el V.basic.net
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado Ramses

  • Sv Member
  • ***
  • Mensajes: 492
  • # apt-get install debian
    • Mi Blog
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #4 : agosto 31, 2007, 10:56:52 am »
y aqui esta Ramses q es la mera mengambrella el V.basic.net

Jejeje no es para tanto, todavia estoy aprendiendo :D
shutdown -h now
Mi Blog

sicario

  • Visitante
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #5 : agosto 31, 2007, 11:16:57 am »
tiene un pequeño Bug ...

con años bisiestos.. toy viendo como lo arreglo

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #6 : agosto 31, 2007, 11:21:17 am »
tiene un pequeño Bug ...

con años bisiestos.. toy viendo como lo arreglo

Excelente Sicario ahi pasas ya el codigo con el fix..
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

sicario

  • Visitante
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #7 : agosto 31, 2007, 11:30:52 am »
fecha1 = cTOD('31/12/2006')
fecha2 = CTOD('28/02/2012')


mira con estas dos fechas... se pela un poquitin..

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #8 : agosto 31, 2007, 11:37:44 am »
fecha1 = cTOD('31/12/2006')
fecha2 = CTOD('28/02/2012')


mira con estas dos fechas... se pela un poquitin..

Sicario a mi me da 61 meses...y asi es porque aun no ha terminado el mes...

deseas q lo incluya aunque no haya terminado el mes osea q si va por el dia 1 q ya lo tome como mes?

siendo asi ya tendrian q ser 62 meses

o como?....
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

sicario

  • Visitante
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #9 : agosto 31, 2007, 11:55:05 am »
jajja guillen ... no es que no ha terminado... lo que pasa es que es febrero.. y es bisiesto.. si me captas?

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: Calcular diferencia entre dos fechas [Fox]
« Respuesta #10 : agosto 31, 2007, 11:59:54 am »
jajja guillen ... no es que no ha terminado... lo que pasa es que es febrero.. y es bisiesto.. si me captas?

jaja simon ya vas....bueno seguile buscando ahi..q ahorita aqui anda mi jefe y me quiere dar en  la neck jajajaaj

-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-