How to calculate the elapsed time between 2 DateTime fields (Views: 30)
Problem/Question/Abstract: Using Delphi 5, I need to calculate the elapsed time between 2 DateTime fields with the result returned in Days, Hours and Minutes format. Answer: Subtract the values AsDateTime and then use DecodeDate and DecodeTime on the result: procedure TMyForm.Button1Click(Sender: TObject); var StartT, EndT, DeltaT: TDateTime; Days, Hour, Min, Sec, MSec: Word; begin StartT := StrToDateTime('27.02.2000 13:45'); EndT := StrToDateTime('02.03.2000 17:30'); DeltaT := EndT - StartT; Days := trunc(DeltaT); DecodeTime(DeltaT, Hour, Min, Sec, MSec); ShowMessage(' Time elapsed: ' + IntToStr(Days) + ' days, ' + IntToStr(Hour) + ' hours, ' + IntToStr(Min) + ' minutes '); end; When trying to actually run the above sample, you have to change the string constants used to initialize the datetime vars according to your settings in ShortDateFormat and LongTimeFormat. |