FoxPro/Visual FoxPro - fechanac

 
Vista:

fechanac

Publicado por marilaura (1 intervención) el 31/10/2007 20:42:58
hola a todos, necesito saber como puedo colocar la fecha de nacimiento de una persona en un text y que me muestre q edad tiene en otro text. porfi, probe de varias formas y no me sale
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
sin imagen de perfil

RE:fechanac

Publicado por neo (1604 intervenciones) el 31/10/2007 20:54:04
Revisa esto:

http://www.lawebdelprogramador.com/codigo/codigo.php?idp=1067&id=34&texto=FoxPro/Visual+FoxPro
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:fechanac

Publicado por juan fernando (537 intervenciones) el 31/10/2007 21:14:34
Mira yo hice un sistema de mascotitas en Vfp
y use sentencias Sql :
Edad(Es campo)
Nacto=(campo fecha)

Select Nombre ,nacto,Year(date())-Year(nacto),;
Right(date())-Right(Nacto)As Edad From Mascotas Order By Edad Into cursor micursor

Sele micursor Date(actual )
Browse

Nombre Nacto Edad
Bubín 10/03/2001 6
Pelusa 01/04/2005 2
Kaiser 05/01/2002 5
Aldevaran 07/07/2000 7
Buffy 01/10/2004 3
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: Otro ejemplo fechanac .

Publicado por juan fernando (537 intervenciones) el 31/10/2007 21:31:25
antes en el calendario que la fecha de nacimiento. Las siguientes consultas muestran la fecha actual, la
fecha de nacimiento y la edad para cada mascota.
SELECT nombre, nacimiento, CURRENT_DATE,
-> (YEAR(CURRENT_DATE) - YEAR(nacimiento))
-> - (RIGHT(CURRENT_DATE,5) < RIGHT(nacimiento,5)) AS edad FROM mascotas;
+--------+------------+--------------+------+
| nombre | nacimiento | CURRENT_DATE | edad |
+--------+------------+--------------+------+
| Fluffy | 1999-02-04 | 2002-12-23 | 3 |
| Mau | 1998-03-17 | 2002-12-23 | 4 |
| Buffy | 1999-05-13 | 2002-12-23 | 3 |
| FanFan | 2000-08-27 | 2002-12-23 | 2 |
| Kaiser | 1989-08-31 | 2002-12-23 | 13 |
| Chispa | 1998-09-11 | 2002-12-23 | 4 |
| Wicho | 2000-02-09 | 2002-12-23 | 2 |
| Skim | 2001-04-29 | 2002-12-23 | 1 |
| Pelusa | 2000-03-30 | 2002-12-23 | 2 |
+--------+------------+--------------+------+
*___________________________________________________________


Una consulta similar puede ser usada para determinar la edad que tenía una mascota cuando falleció.
Para determinar que animalitos ya fallecieron, la condición es que el valor en el campo fallecimiento no
sea nulo (NULL). Entonces, para los registros con valor no-nulo, calculamos la diferencia entre los
valores fallecimiento y nacimiento.
SELECT nombre, nacimiento, fallecimiento,
-> (YEAR(fallecimiento) - YEAR(nacimiento))
-> - (RIGHT(fallecimiento,5) < RIGHT(nacimiento,5))
-> AS edad FROM mascotas WHERE fallecimiento IS NOT NULL;
+--------+------------+---------------+------+
| nombre | nacimiento | fallecimiento | edad |
+--------+------------+---------------+------+
| Kaiser | 1989-08-31 | 1997-07-29 | 7 |
+--------+------------+---------------+------+
1 row in set (0.01 sec)
*_______________________________________________________

*Informe por mes de nacimiento :

SELECT nombre, nacimiento, MONTH(nacimiento) FROM mascotas;
+--------+------------+-------------------+
| nombre | nacimiento | MONTH(nacimiento) |
+--------+------------+-------------------+
| Fluffy | 1999-02-04 | 2 |
| Mau | 1998-03-17 | 3 |
| Buffy | 1999-05-13 | 5 |
| FanFan | 2000-08-27 | 8 |
| Kaiser | 1989-08-31 | 8 |
| Chispa | 1998-09-11 | 9 |
| Wicho | 2000-02-09 | 2 |
| Skim | 2001-04-29 | 4 |
| Pelusa | 2000-03-30 | 3 |
+--------+------------+-------------------+
9 rows in set (0.00 sec)
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
sin imagen de perfil

RE:fechanac

Publicado por Ernesto Hernandez (4623 intervenciones) el 31/10/2007 21:58:26
prueba algo asi en el LosFocus donde captures la fecha de nacimiento y pon EDAD como valor de tu caja donde deseas mostrar la edad

Z_NACIMIENTO=DTOC(THISFORM.W_NACIMIENTO.Value )
Z_RFC=SUBSTR(THISFORM.W_APATERNO.Value,1,2)+SUBSTR(THISFORM.W_AMATERNO.Value,1,1)+SUBSTR(THISFORM.W_NOMBRE.Value,1,1)
Z_RFC1=Z_RFC+SUBSTR(Z_NACIMIENTO,9,2)+SUBSTR(Z_NACIMIENTO,4,2)+SUBSTR(Z_NACIMIENTO,1,2)
FEC2=DATE()
FEC1=THIS.Value
DIFERENCIA=FEC2-FEC1
SUMAR=INT(DIFERENCIA/1461)
VAR1=DIFERENCIA/365
AÑOS=INT(VAR1)
VAR1=VAR1-AÑOS
VAR1=VAR1*12
MESES=INT(VAR1)
VAR1=(VAR1-MESES)*30
DIAS=(INT(VAR1))-SUMAR
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:fechanac

Publicado por Luighi (105 intervenciones) el 31/10/2007 23:23:02
okazzzzzzzz
aquí te paso una sencilla función de usuario
lo único que tienes que hacer es copiar el código que aquí pongo en un prg
y si haces en la ventana de comandos por ejemplo lo siguiente:
? edad({^1985-03-29})
te devolverá el valor 22, osea, 22 añitos
sólo debes pasarle un campo o variable del tipo fecha
si tas en un form entonces debes hacer algo parecido a ésto:
thisform.txtEdad.value=edad(thisform.txtFechaDeNacimiento)
donde se supone que a txtFechaDeNacimiento debes inicializarlo con el valor {}
bueno, ya debes tener ciertas nociones
el programita edad.prg devuelve un número por si acaso
y no te preocupes si el año es bisiesto o trisiesto
crea un prg
le pones el nombre "edad"
y le copias todo lo que sigue desdpués de los asteriscos:
****
para fFechaNac
****
if set('talk')='ON'
set talk off
cTalk='ON'
else
cTalk='OFF'
endif
****
if type('fFechaNac')='D' and !empt(fFechaNac)
xDia=day (fFechaNac)
xMes =mont(fFechaNac)
xAño=year(fFechaNac)
fFechaAct=date()
nDia=day (fFechaAct)
nMes=mont(fFechaAct)
nAño=year(fFechaAct)
if nAño>=xAño
nEdad=nAño-xAño
if nEdad>0 and (nMes<xMes or (nMes=xMEs and nDia<xDia))
nEdad=nEdad-1
endif
else
nEdad=0
endif
else
nEdad=0
endif
****
set talk &cTalk
****
retu nEdad
****
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