![]() |
Restar fechas(días, meses, años)
tengo que restar dos fechas, una de cuando ingreso y otra cuando se fué para poder sacar la antigüledad, este es el código:
calcular.click var dd4,a4,d4,m4:interger; begin dd4:=round(f_egreso_1.DateTime - f_ingreso_1.DateTime); a4:=dd4 div 365; d4:= dd4 mod 365; m4:= d4 div 30; d4:= d4-(m4*30); total4.Text:= (inttostr(d4)+'días '+inttostr(m4)+'meses '+inttostr(a4)+'años'); end; El problema es que si resto por ejemplo: 17/04/98 - 17/04/08 tendría que devolverme 0 días 0 meses 10 años y lo que me devuelve son 3 días 0 meses 10 años. Si bien lo que me devuelve es exacto por la diferencia de días por los meses bisiesto y eso, no me sirve. Desde ya muchas gracias. |
Hola Hugo, porque no usas las funciones de la unidad DateUtils, hay varias funciones para realizar operaciones sobre fechas. Como DaysBetween (te da la cantidad de dias entre dos fechas), MonthsBetween, YearBetween...
Saluditos |
Disculpa de nuevo, pero no podrías darme un ej; porque ya adicione al proyecto los dateutils pero debo estar usando mal el daysbetween porque me da cualquier cosa 14/03/1431.
|
Hola de nuevo Hugo, te pongo el ejemplo.
Lo que te devuelve la función DaysBetween es un entero, al igual que MonthBetWeen, YearBetween. Saluditos |
disculpa que te moleste de nuevo, pero el resultado del daysbetween me da un integer y si yo hago el cálculo de dividir x 365 y luego x30 , me va a seguir dando el mismo error que antes. Porque lo que yo necesito es que si un mes tiene 31 días y el otro 30,ejemplo:(01/02/07 - 01/03/07=1 mes) y con el Between me daría de resultado 1 día 1 mes. Espero haberme explicado mejor, si no es así pido disculpas nuevamente.
Saludos |
Hola de nuevo hugo, yo me refería a que revisaras las funciones de fecha que tiene DateUtils y te ayudaras con ellas, te pongo un ejemplo.
Saluditos |
Con ese ejemplo da perfecto, muchísimas gracias a vos y a todos por la ayuda y las molestías.
Saludos. |
Hola de nuevo hugo, no es ninguna molestia, solo que la siguiente vez no repitas hilos por favor, trata de explicar lo mejor que puedas tu problema y de tener un poco de paciencia, ya que muchos de nosotros no estamos disponibles todo el tiempo.
Saluditos ;) |
Hola Caro, gracias por el ejemplo, pero en algunas ocasiones falla por un día, tomo de comparación una pagina que hace lo mismo, restar dos fechas,
|
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)
Este mensaje es de hace unos 5 años, al menos deberías explicar qué te ocurre, qué falla, en qué condiciones, qué código estás usando, etc. Lee nuestra guía de estilo, gracias. |
La franja horaria es GMT +2. Ahora son las 12:57:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi