Calcular Edad
-
- Novato
- Mensajes: 27
- Registrado: Lun Feb 07, 2011 8:27 pm
- Ubicación: Maracaibo-Venezuela
- Contactar:
Calcular Edad
Buenas Tardes
Tengo que calcular la edad de una persona y tengo esta formula pero no me da correctamente la edad:
Edad=(Today()-Fecha Nacimiento)/365
Donde esta el error, es algo con el dia biciesto.
Tengo que calcular la edad de una persona y tengo esta formula pero no me da correctamente la edad:
Edad=(Today()-Fecha Nacimiento)/365
Donde esta el error, es algo con el dia biciesto.
-
- Al nivel de RZ
- Mensajes: 161
- Registrado: Dom Feb 06, 2011 2:36 am
- Contactar:
Re: Calcular Edad
hola jones
mira si te sirve. Hay mas de una manera de obtener lo que desea, dependendo de tu objetivo.
(*yo tenia eso en mi archivo, pero no grabe QUIEN lo hizo. Entonces, gracias al autor desconocido.)
Edad = YEAR(TODAY()) - YEAR(FechaNac)
Mas exacto podria ser algo asi:
IF DATE(MONTH(FechaNac),DAY(FechaNac),YEAR(TODAY()) >= TODAY() ! Ya cumplió años
Edad = YEAR(TODAY()) - YEAR(FechaNac)
ELSE
Edad = YEAR(TODAY()) - YEAR(FechaNac) - 1
END
(codigo no probado).
o aun
Aqui tenes una función que te puede servir
! Parametros: Recibe(Date,Date) Entrega(Num)
! Descripcion: Informa cantidad de años transcurridos entre dos fechas
Anios Function(Arg1,Arg2)
Anios Short
Menor Date
Mayor Date
Code
Menor=Arg1; Mayor=Arg2; If Mayor<Menor; Menor=Arg2; Mayor=Arg1; End
Anios=Year(Mayor)-Year(Menor)
If Month(Mayor)<Month(Menor); Anios=Anios-1; End
If (Month(Mayor)=Month(Menor)) And (Day(Mayor)<Day(Menor));
Anios=Anios-1; End
Return(Anios)
mira si te sirve. Hay mas de una manera de obtener lo que desea, dependendo de tu objetivo.
(*yo tenia eso en mi archivo, pero no grabe QUIEN lo hizo. Entonces, gracias al autor desconocido.)
Edad = YEAR(TODAY()) - YEAR(FechaNac)
Mas exacto podria ser algo asi:
IF DATE(MONTH(FechaNac),DAY(FechaNac),YEAR(TODAY()) >= TODAY() ! Ya cumplió años
Edad = YEAR(TODAY()) - YEAR(FechaNac)
ELSE
Edad = YEAR(TODAY()) - YEAR(FechaNac) - 1
END
(codigo no probado).
o aun
Aqui tenes una función que te puede servir
! Parametros: Recibe(Date,Date) Entrega(Num)
! Descripcion: Informa cantidad de años transcurridos entre dos fechas
Anios Function(Arg1,Arg2)
Anios Short
Menor Date
Mayor Date
Code
Menor=Arg1; Mayor=Arg2; If Mayor<Menor; Menor=Arg2; Mayor=Arg1; End
Anios=Year(Mayor)-Year(Menor)
If Month(Mayor)<Month(Menor); Anios=Anios-1; End
If (Month(Mayor)=Month(Menor)) And (Day(Mayor)<Day(Menor));
Anios=Anios-1; End
Return(Anios)
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Calcular Edad
Dividí por 365.25. Ahí debería darte mejor. Puedes comprobar el resultado con la función AGE (pero esta te devuelve un texto).jones escribió:Buenas Tardes
Tengo que calcular la edad de una persona y tengo esta formula pero no me da correctamente la edad:
Edad=(Today()-Fecha Nacimiento)/365
Donde esta el error, es algo con el dia biciesto.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Novato
- Mensajes: 27
- Registrado: Lun Feb 07, 2011 8:27 pm
- Ubicación: Maracaibo-Venezuela
- Contactar:
Re: Calcular Edad
Con ninguna de las Formula me da ejemplo:
Fecha nacimiento 25/02/1993 me da 18 Años
Pero si Fecha Nacimiento es 26/02/1993 Dice que igual 18 años
Hasta con la fecha 28/02/1993 dice que son 18 Años
Fecha nacimiento 25/02/1993 me da 18 Años
Pero si Fecha Nacimiento es 26/02/1993 Dice que igual 18 años
Hasta con la fecha 28/02/1993 dice que son 18 Años
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Calcular Edad
Loc:Edad = int((today() - date(2,26,1993))/365.25)
Probá así.
Probá así.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Al nivel de RZ
- Mensajes: 367
- Registrado: Lun Feb 07, 2011 4:45 pm
- Ubicación: Santo Domingo,Rep.Dominicana
- Contactar:
Re: Calcular Edad
Hola
Amigo
Prueba con este codigo, para lograrlo tiene que digitar la fecha de nacimiento
completa y tiene como resultado el el dia, el mes y la edad.
Debe crear estos campos en tu tabla.
FechadeNacimiento !es la fecha de entrada principal que va buscar a los demás
DiasSemana ! Te da el dia que Nació, si fue lunes marte etc...
Mes ! te da el nombre del mes en que nació
Edad !te da el resultado que busca.
este codigo lo puede colocar el campo fecha de cumpleaños
Espero que te siva la idea
Amigo
Prueba con este codigo, para lograrlo tiene que digitar la fecha de nacimiento
completa y tiene como resultado el el dia, el mes y la edad.
Debe crear estos campos en tu tabla.
FechadeNacimiento !es la fecha de entrada principal que va buscar a los demás
DiasSemana ! Te da el dia que Nació, si fue lunes marte etc...
Mes ! te da el nombre del mes en que nació
Edad !te da el resultado que busca.
este codigo lo puede colocar el campo fecha de cumpleaños
Código: Seleccionar todo
!Validando Fecha de Cumpleaño
if MIEM:FechaNacCumpleano<>0
MIEM:DiaSemana=CLIP(DisplayDayText[(MIEM:FechaNacCumpleano%7)+1])
End
if MONTH(TODAY()) > MONTH(MIEM:FechaNacCumpleano) OR MONTH(TODAY()) = MONTH(MIEM:FechaNacCumpleano) AND DAY(TODAY()) >= DAY(MIEM:FechaNacCumpleano)
MIEM:Edad=Clip(format(Year(Today()) -year(MIEM:FechaNacCumpleano),@s3)); display
else
MIEM:Edad=Clip(format(Year(Today()) -year(MIEM:FechaNacCumpleano)-1,@s3)); display
end
MIEM:Mes=Clip(DisplayMonthText[(Month(MIEM:FechaNacCumpleano))])
!MIEM:Edad=Clip(format(Year(Today()) -year(MIEM:FechaNacCumpleaño)-1,@s3));
display
ThisWindow.reset(true)
Ing. R. Pacheco
Analista Programador
Pachecoramon@hotmail.com, Skype:pachecoramon
Santo Domingo, Rep. Dominicana
Para cualquier consulta rápida: hacerla por WhatApp al 1 347-6159 US
Analista Programador
Pachecoramon@hotmail.com, Skype:pachecoramon
Santo Domingo, Rep. Dominicana
Para cualquier consulta rápida: hacerla por WhatApp al 1 347-6159 US
-
- Mensajes: 9
- Registrado: Mar Feb 08, 2011 10:03 am
- Contactar:
Re: Calcular Edad
Hola a la edad la caclulo asi:
HIS:AniosEdad = YEAR(Today()) - YEAR(HIS:FechaNacimiento)
HIS:MesEdad = MONTH(Today()) - MONTH(HIS:FechaNacimiento)
HIS:DiasEdad = DAY(TODAY()) - DAY(HIS:FechaNacimiento)
IF HIS:DiasEdad < 0
HIS:DiasEdad = DAY(HIS:FechaNacimiento) + HIS:DiasEdad
END
IF HIS:MesEdad < 0
HIS:AniosEdad -= 1
HIS:MesEdad = MONTH(HIS:FechaNacimiento) + HIS:MesEdad
End
Espero se entienda.
Saludos
HIS:AniosEdad = YEAR(Today()) - YEAR(HIS:FechaNacimiento)
HIS:MesEdad = MONTH(Today()) - MONTH(HIS:FechaNacimiento)
HIS:DiasEdad = DAY(TODAY()) - DAY(HIS:FechaNacimiento)
IF HIS:DiasEdad < 0
HIS:DiasEdad = DAY(HIS:FechaNacimiento) + HIS:DiasEdad
END
IF HIS:MesEdad < 0
HIS:AniosEdad -= 1
HIS:MesEdad = MONTH(HIS:FechaNacimiento) + HIS:MesEdad
End
Espero se entienda.
Saludos
- DanielRuzo
- Al nivel de RZ
- Mensajes: 124
- Registrado: Dom Feb 06, 2011 7:45 pm
- Ubicación: Uruguay
- Contactar:
Re: Calcular Edad
La técnica que sugiere Luiz te tiene que funcionar. Es sólo cuestión de entender un poco el código.Con ninguna de las Formula me da ejemplo:
Fecha nacimiento 25/02/1993 me da 18 Años
Pero si Fecha Nacimiento es 26/02/1993 Dice que igual 18 años
Hasta con la fecha 28/02/1993 dice que son 18 Años
El error que tiene tal como lo escribió Luiz es que está restando al revés.
¡Saludos!
Daniel Ruzo
www.amazingGUI.com
Yo creo en la reencarnación:
antes tenía una vida y ahora soy programador
Daniel Ruzo
www.amazingGUI.com
Yo creo en la reencarnación:
antes tenía una vida y ahora soy programador
-
- Al nivel de RZ
- Mensajes: 306
- Registrado: Dom Feb 06, 2011 10:02 pm
- Ubicación: Trelew, Chubut, Argentina
- Contactar:
Re: Calcular Edad
Probaste con Age() ?
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 60 invitados