Ver Mensaje Individual
  #1  
Antiguo 12-03-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Reputación: 17
shoulder Va por buen camino
Problema calcular meses , dias entre rango de fechas

Encontre esta funcion de calculo de edad, que la adapte para el calculo de meses y dias solo cambiando DATE por una variable, pero me parece que en esa funcion hay un error cuando el mes es febrero porque hace
DiasFinales = (Dias Iniciales -Dias del ultimo mes);
y si resto 24/02/2014 - 31/12/2014 me da 10 meses y 7 dias pero esta mal son y 5 días y de la funcion no cambie nada. Estoy equivocado?.

Cita:


function CalculaEdadCompleta(Fecha, Fecha1:TDateTime):String;
var A, AA, M, MM, D, DD: Word;
Anio, Mes, Dia: double;
begin
DecodeDate(Fecha, A, M, D);
DecodeDate(Fecha1, AA, MM, DD);
Anio := Int(AA - A);
if( M <= MM ) then
Mes := MM - M
else
begin
Mes := MM+12-M;
Anio := Anio -1;
end;
if( D <= DD ) then
Dia := DD - D
else
begin
Dia:=DD+MonthDays[IsLeapYear(AA),MM]-D;
Mes := Mes -1;
end;
if Mes < 0 then
begin
Anio := Anio - 1;
Mes := 12 + Mes;
end;
Result := Format('Años: %.0f, Meses: %.0f, Dias: %.0f', [Anio, Mes, Dia]);
end;




Responder Con Cita