Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2011
y_a_p y_a_p is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 37
Poder: 0
y_a_p Va por buen camino
Edad!

Hola a todos nuevamente yo!, evidentemente hay algo q estoy haciendo mal cuando saco la edad y los meses porq no me dan bien los resultado, mi sistema esta hecho en Delphi 7, trabajo con BD SQL Manager 2008 y el motor Firebird, lo q busco es, después de haber sacado con la función MontsBetween la cantidad de meses q tiene un paciente desde la fecha de nacimiento hasta hoy, obtener a partir de esa cantidad de meses, por ejemplo: 37, la cantidad de años y meses q tiene ese paciente, por ejemplo: 3 años y 1 mes.Aquí les presento el código:
Código Delphi [-]
var
a,edad,m: Integer;
begin
 a:=0;
 DM.DSET_pac.Edit;
 DM.DSET_pacMESES.Value:=MonthsBetween(Now, DM.DSET_pacMESES.Value);
 edad:=DM.DSET_pacMESES.Value;
 For m:=edad Downto 12 do
   a:=a+1;
   m:=m-11;
DM.DSET_pacEDAD.Value:=a;
DM.DSET_pacMESES.Value:=m;

DM= Data_Module.
DSET_pac= Tabla pacientes.
a= cantidad de años.
m= cantidad de meses.
Ambos obtenidos después del for, q son los q no me dan como debe ser.
edad= cantidad de meses obtenidos con la función MonthsBetween.
Debo contarles q en el OnShow del Alta de pacientes tengo la fecha para q aparezca por defecto con la fecha actual, y al mes y año inicializado en 0, al igual en la BD.
Código Delphi [-]
 DM.DSET_pacMESES.Value:=0;
 DM.DSET_pacEDAD.Value:=0;
 DM.DSET_pacFECHA_DE_NACIMIENTO.Value:= Now;
Desde ya muchas gracias por su ayuda!!!
Responder Con Cita
  #2  
Antiguo 01-12-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Por favor, recuerda poner títulos descriptivos a tus preguntas, Edad! no es ningún título que describa nada.
Responder Con Cita
  #3  
Antiguo 01-12-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Hola y_a_p, es mejor que utilices las funciones de fecha:

Código Delphi [-]
 var  Anyos, Meses : Integer;
 begin
  Anyos := YearsBetween(Now, FechaInicio);
  if Anyos > 0 then
   FechaInicio := IncYear(FechaInicio, Anyos);

  Meses := MonthsBetween(FechaInicio, Now); 
  showmessage('Edad :'+IntToStr(Anyos)+' Años '+IntToStr(Meses)+' Meses');

lo acomodas a tu codigo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 01-12-2011 a las 15:05:35.
Responder Con Cita
  #4  
Antiguo 01-12-2011
y_a_p y_a_p is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 37
Poder: 0
y_a_p Va por buen camino
IncYear

Voy a tener en cuanta lo del título, igual me gustaría entender q hace el código, me podrían decir q resultado emana la función IncYear igual cuando a fecha le asigno el valor del año y no me deja pasar de integer a date, desde ya muchas gracias!!!
Responder Con Cita
  #5  
Antiguo 01-12-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Hola, IncYear incrementa en años a la fecha que le pasas como parámetro, te explico el codigo:

Código Delphi [-]
 var  Anyos, Meses : Integer;
 begin
  Anyos := YearsBetween(Now, FechaInicio);//Obtenemos la cantidad de años entre la fecha inicio y la fecha actual
  if Anyos > 0 then
  //si existen años se incrementa esa cantidad, a la fecha inicio para así saber los meses que faltan
   FechaInicio := IncYear(FechaInicio, Anyos);

   Meses := MonthsBetween(FechaInicio, Now); //obtenemos la cantidad de meses

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 01-12-2011
y_a_p y_a_p is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 37
Poder: 0
y_a_p Va por buen camino
Wink

Claro, pero deberías tener en cuenta q a los meses los calcula desde la fecha en q nacio, por lo tanto si tiene 3 años y 1 mes, no te calcula los 3 años y 1 mes te calcula 37 meses... cosa contraria con los años q te los calcula bien pero los meses q restan no los tiene en cuenta, no se si me explico...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calcular Edad Ivan A. Garcia Conexión con bases de datos 3 14-08-2008 00:36:29
La edad FGarcia Humor 1 24-07-2007 15:59:39
calcular la edad.... Goyo OOP 16 04-07-2007 22:36:53
calcular edad emiliu Varios 3 28-11-2005 09:58:52
La edad de las moderadoras santana Humor 30 07-09-2004 16:37:44


La franja horaria es GMT +2. Ahora son las 09:18:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi