Sample code for 30+ languages & platforms
Delphi ActiveX

Compute Difference Between Two DateTime Strings

Demonstrates how to compute the difference between two datetime strings.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
t1: WideString;
t2: WideString;
sb1: TChilkatStringBuilder;
count: Integer;
sb2: TChilkatStringBuilder;
dt1: TCkDateTime;
dt2: TCkDateTime;
diffSeconds: Integer;

begin
// Imagine we have these strings:

t1 := '2022-11-14 15:45:38';
t2 := '2022-11-16 17:23:41';

// How many minutes are between the two?

// First, we'd want load each date/time into a Chilkat CkDateTime object.
// In this case, there are no CkDateTime methods that accept the above format.
// However.. the CkDateTime's SetFromTimestamp will accept a date in the format "YYYY-MM-DDThh:mm:ssZ"

// First modify the above dates to the timestamp format.
sb1 := TChilkatStringBuilder.Create(Self);
sb1.Append(t1);
count := sb1.Replace(' ','T');
sb1.Append('Z');

sb2 := TChilkatStringBuilder.Create(Self);
sb2.Append(t2);
count := sb2.Replace(' ','T');
sb2.Append('Z');

// Load each into a CkDateTime
dt1 := TCkDateTime.Create(Self);
dt1.SetFromTimestamp(sb1.GetAsString());
// verify...
Memo1.Lines.Add(dt1.GetAsTimestamp(0));

dt2 := TCkDateTime.Create(Self);
dt2.SetFromTimestamp(sb2.GetAsString());
// verify...
Memo1.Lines.Add(dt2.GetAsTimestamp(0));

// Get the difference in seconds
diffSeconds := dt2.DiffSeconds(dt1.ControlInterface);
Memo1.Lines.Add('Difference in seconds: ' + IntToStr(diffSeconds));
Memo1.Lines.Add('Difference in minutes: ' + IntToStr(diffSeconds / 60));
end;