Ver Mensaje Individual
  #1  
Antiguo 22-05-2022
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Extraño resultado de la función "DateUtils.MinutesBetween"

Hola a todos,

A ver si alguien sabría decirme a qué se debe el siguiente extraño resultado utilizando la función de la unidad DateUtils "MinutesBetween":

Código Delphi [-]
var
  DateTimeA, DateTimeB: TDateTime;
begin
  DateTimeA := EncodeDateTime(2022, 1, 1, 10, 0, 0, 0);
  DateTimeB := EncodeDateTime(2022, 1, 1, 11, 0, 0, 0);

  // Muestra 60, lo que en principio parece el resultado esperado
  ShowMessage(IntToStr(MinutesBetween(DateTimeA, DateTimeB)));
end;
...
Código Delphi [-]
var
  DateTimeA, DateTimeB: TDateTime;
begin
  DateTimeA := EncodeDateTime(2022, 1, 1, 9, 0, 0, 0);
  DateTimeB := EncodeDateTime(2022, 1, 1, 10, 0, 0, 0);

  // Muestra 59, lo que en principio NO PARECE el resultado esperado
  ShowMessage(IntToStr(MinutesBetween(DateTimeA, DateTimeB)));
end;

P.D. El problema parece estar en Delphi 2007... puesto que en Delphi 10.4 en ambos casos el resultado es el esperado: 60 minutos... lo que me lleva a pensar en algún problema en la unidad "DateUtils" de Delphi 2007... porque además el problema ocurre también, por ejemplo, con la función "SecondsBetween"... y además con varias "horas"... es decir, no sólo de las 9 a las 10, pero, también de las 0 a la 1, por ejemplo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 22-05-2022 a las 18:50:35.
Responder Con Cita