![]() |
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:
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. Desde ya muchas gracias por su ayuda!!! |
Por favor, recuerda poner títulos descriptivos a tus preguntas, Edad! no es ningún título que describa nada.
|
Hola y_a_p, es mejor que utilices las funciones de fecha:
lo acomodas a tu codigo. Saluditos |
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!!!
|
Hola, IncYear incrementa en años a la fecha que le pasas como parámetro, te explico el codigo:
Saluditos |
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...
|
Hola y_a_p,
creo que no has entendido lo que te proponía Caro, en la función es lo siguiente: A la FechaInicio (Caro la ha llamado así pero en realidad es la fecha de nacimiento del paciente) le está sumando los años resultantes después de hacer el YearsBetween y que hemos guardado en la variable Anyos. Pongamos que la FechaInicio es 01/02/2008 y hoy es 01/03/2011 por lo tanto al hacer el YearsBetween tendremos guardado Anyos=3, luego a la fecha inicio le sumamos esos años por lo que tendríamos 01/02/2011, si ahora hacemos tendremos meses=1. Espero que esto te haya despejado las dudas que tuvieras. Saludos. |
Ah, ahora si comprendo y si me sirvio mucho, estaba interpretando equivocadamente el código, muchísimas gracias!!! :)
|
Hola.
Yo utilizo esta función que encontré por el foro:
Por si sirve. Un saludo. |
| La franja horaria es GMT +2. Ahora son las 10:12:29. |
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