Calcular Edad

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
jones
Novato
Mensajes: 27
Registrado: Lun Feb 07, 2011 8:27 pm
Ubicación: Maracaibo-Venezuela
Contactar:

Calcular Edad

Mensaje por jones » Vie Feb 25, 2011 5:07 pm

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.


luizmarin
Al nivel de RZ
Mensajes: 161
Registrado: Dom Feb 06, 2011 2:36 am
Contactar:

Re: Calcular Edad

Mensaje por luizmarin » Vie Feb 25, 2011 5:28 pm

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)
Luiz Marin

Saludos desde Brazil...

www.olabombinhas.com.br

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Calcular Edad

Mensaje por Mauricio » Vie Feb 25, 2011 5:38 pm

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.
Dividí por 365.25. Ahí debería darte mejor. Puedes comprobar el resultado con la función AGE (pero esta te devuelve un texto).
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

jones
Novato
Mensajes: 27
Registrado: Lun Feb 07, 2011 8:27 pm
Ubicación: Maracaibo-Venezuela
Contactar:

Re: Calcular Edad

Mensaje por jones » Vie Feb 25, 2011 7:12 pm

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

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Calcular Edad

Mensaje por Mauricio » Vie Feb 25, 2011 7:21 pm

Loc:Edad = int((today() - date(2,26,1993))/365.25)
Probá así.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

R.Pacheco
Al nivel de RZ
Mensajes: 367
Registrado: Lun Feb 07, 2011 4:45 pm
Ubicación: Santo Domingo,Rep.Dominicana
Contactar:

Re: Calcular Edad

Mensaje por R.Pacheco » Sab Feb 26, 2011 2:24 am

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

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)  
Espero que te siva la idea
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

Marcelo Madelon
Mensajes: 9
Registrado: Mar Feb 08, 2011 10:03 am
Contactar:

Re: Calcular Edad

Mensaje por Marcelo Madelon » Lun Feb 28, 2011 12:17 pm

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

Avatar de Usuario
DanielRuzo
Al nivel de RZ
Mensajes: 124
Registrado: Dom Feb 06, 2011 7:45 pm
Ubicación: Uruguay
Contactar:

Re: Calcular Edad

Mensaje por DanielRuzo » Lun Feb 28, 2011 5:18 pm

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
La técnica que sugiere Luiz te tiene que funcionar. Es sólo cuestión de entender un poco el código.

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

HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: Calcular Edad

Mensaje por HDMadeira » Jue Mar 03, 2011 8:30 pm

Probaste con Age() ?


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 22 invitados