Delphi DLL
Delphi DLL
Compute Difference Between Two DateTime Strings
Demonstrates how to compute the difference between two datetime strings.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CkDateTime, StringBuilder;
...
procedure TForm1.Button1Click(Sender: TObject);
var
t1: PWideChar;
t2: PWideChar;
sb1: HCkStringBuilder;
count: Integer;
sb2: HCkStringBuilder;
dt1: HCkDateTime;
dt2: HCkDateTime;
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 := CkStringBuilder_Create();
CkStringBuilder_Append(sb1,t1);
count := CkStringBuilder_Replace(sb1,' ','T');
CkStringBuilder_Append(sb1,'Z');
sb2 := CkStringBuilder_Create();
CkStringBuilder_Append(sb2,t2);
count := CkStringBuilder_Replace(sb2,' ','T');
CkStringBuilder_Append(sb2,'Z');
// Load each into a CkDateTime
dt1 := CkDateTime_Create();
CkDateTime_SetFromTimestamp(dt1,CkStringBuilder__getAsString(sb1));
// verify...
Memo1.Lines.Add(CkDateTime__getAsTimestamp(dt1,False));
dt2 := CkDateTime_Create();
CkDateTime_SetFromTimestamp(dt2,CkStringBuilder__getAsString(sb2));
// verify...
Memo1.Lines.Add(CkDateTime__getAsTimestamp(dt2,False));
// Get the difference in seconds
diffSeconds := CkDateTime_DiffSeconds(dt2,dt1);
Memo1.Lines.Add('Difference in seconds: ' + IntToStr(diffSeconds));
Memo1.Lines.Add('Difference in minutes: ' + IntToStr(diffSeconds / 60));
CkStringBuilder_Dispose(sb1);
CkStringBuilder_Dispose(sb2);
CkDateTime_Dispose(dt1);
CkDateTime_Dispose(dt2);
end;