 Mirror

Calculate the difference between two time values (Views: 102)

 Problem/Question/Abstract:How to get the hours and minutes between two DateTime values?Answer:Solve 1:In order to avoid future questions about rounding, I would consider the solution below (untested!):{ ... }var  InTime, OutTime: TDateTime;  InMinutes, OutMinutes, MinutesDiff: Int64;  DiffHours, DiffMinutes: Integer;begin  { First, make sure that InTime and OutTime are relative to the same offset from GMT. Then:}  InMinutes := round(InTime * 24 * 60);  OutMinutes := round(OutTime * 24 * 60);  MinutesDiff := OutMinutes - InMinutes;  Assert(MinutesDiff >= 0);  DiffHours := MinutesDiff div 60;  DiffMinutes := MinutesDiff mod 60;end;Solve 2:{ ... }var  InTime, OutTime, TimeDifference: TDateTime;  DiffHours, DiffMinutes: Integer;begin  TimeDifference := OutTime - InTime;  {ShowMessage(DateTimeToStr(TimeDifference);}  DiffHours := trunc(TimeDifference * 24);  { DiffMinutes := trunc((TimeDifference * 24 * 60) - (Trunc(TimeDifference * 24) * 60))}  DiffMinutes := trunc((TimeDifference * 24 * 60) - (DiffHours * 60))end;

<< Back to main page