Ver Mensaje Individual
  #1  
Antiguo 22-03-2019
tiqui_loquito tiqui_loquito is offline
Miembro
 
Registrado: oct 2013
Posts: 56
Reputación: 11
tiqui_loquito Va por buen camino
Problemas al calcular días entre enero y febrero

Buenos días

Tengo el siguiente problema.

Cuando calculo los días de vida de una persona entre las fechas 31/01/2019 y el día 12/02/2019 la función me retorna 9 días, sin embargo la persona de acuerdo al calendario tiene 12 Días.

Creo que debo modifica la línea

Código Delphi [-]
Dia:=DD+MonthDays[IsLeapYear(AA),MM]-D;
Mes := Mes -1;

Pero que sugerencias o ideas me pueden dar para solucionar este problemita.

Muchas gracias

La función que aplico es la siguiente (La he tomado de los foros de club delphi)


Código Delphi [-]
function CalculaEdadCompleta(Fecha:TDateTime):String;
var A, AA, M, MM, D, DD: Word;
  Anio, Mes, Dia: double;
begin
  DecodeDate(Fecha, A, M, D);
  DecodeDate(Date, 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