Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Compute Difference Between Two DateTime StringsDemonstrates how to compute the difference between two datetime strings.
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; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.