Skip to content

RecodeTime ​

The RecodeTime function selectively replaces the time portions of a specified TDateTime value.

The function converts the date/time TDateTime value specified by AValue, with the value obtained by changing the hour to AHour, the minute to AMinute, the second to ASecond, and the milliseconds to AMilliSecond.

  • Valid accepted values for AHour range from 0 to 24. If AHour is 24, then the values for the minutes, seconds, and milliseconds must all equal zero (0).
  • AMinute can be a value that ranges from 0 through 59 inclusive.
  • ASecond can be a value that ranges from 0 through to 59 inclusive.
  • AMilliSecond can range from 0 to 999 inclusive.

If the values provided by any of these parameters does not represent a valid time, then RecodeTime raises an exception error.

Declaration: Function RecodeTime(const AValue: TDateTime; const AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;

An example would be as follows.

pascal
procedure OnMapEvent(var Value:Variant);
var
  ThatDate, TheDate : TDateTime;
  aHour, aMin, aSec, aMil : word;
begin
  aHour := 16;
  aMin := 30;
  aSec := 30;
  aMil := 500;
  TheDate := EncodeDateTime(2024, 06, 25, 00, 00, 00, 000);
  ThatDate := RecodeTime(TheDate, aHour,  aMin, aSec, aMil);
  LogInfo(FormatDateTime('dd-mm-yyyy hh:nn:ss.zzz', ThatDate));

 //This will produce an error
  aHour := 16;
  aMin := 70;
  aSec := 30;
  aMil := 500;
  ThatDate := RecodeTime(TheDate, aHour,  aMin, aSec, aMil);
  LogInfo(FormatDateTime('dd-mm-yyyy hh:nn:ss.zzz', ThatDate));
  LogInfo('');

end;