ObjectPascal
RecodeTime
Function
Change only the time part of a TDateTime variable DateUtils unit
 function RecodeTime ( const SourceDate : TDateTime; const Hour, Min, Sec, MSec : Word ) : TDateTime;
Description
The RecodeTime function allows the Hour, Min, Sec and MSec (milli-second) values of a TDateTime variable to be changed without affecting the date.
Related commands
DecodeDate Extracts the year, month, day values from a TDateTime var.
DecodeDateTime Breaks a TDateTime variable into its date/time parts
DecodeTime Break a TDateTime value into individual time values
EncodeDate Build a TDateTime value from year, month and day values
EncodeDateTime Build a TDateTime value from day and time values
EncodeTime Build a TDateTime value from hour, min, sec and msec values
RecodeDate Change only the date part of a TDateTime variable
ReplaceDate Change only the date part of a TDateTime variable
ReplaceTime Change only the time part of a TDateTime variable
 
Example code : Change the time without changing the date
var
  myDate : TDateTime;

begin
  // Set the date to 29/10/2002 at 12:34:56
  myDate := EncodeDateTime(2002, 10, 29, 12, 34, 56, 0);
  WriteLn('The starting date/time = '+DateTimeToStr(myDate));

  // Now change the time portion without touching the date
  myDate := RecodeTime(myDate, 7, 35, 22, 0);
  WriteLn('The new      date/time = '+DateTimeToStr(myDate));
end;
Show full unit code
   The starting date/time = 29/10/2002 12:34:56
   The new date/time      = 29/10/2002 07:35:22