DataFlex
DataFlex
Compute Difference Between Two DateTime Strings
Demonstrates how to compute the difference between two datetime strings.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
String sT1
String sT2
Handle hoSb1
Boolean iSuccess
Integer iCount
Handle hoSb2
Variant vDt1
Handle hoDt1
Handle hoDt2
Integer iDiffSeconds
String sTemp1
// Imagine we have these strings:
Move "2022-11-14 15:45:38" To sT1
Move "2022-11-16 17:23:41" To sT2
// 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.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb1
If (Not(IsComObjectCreated(hoSb1))) Begin
Send CreateComObject of hoSb1
End
Get ComAppend Of hoSb1 sT1 To iSuccess
Get ComReplace Of hoSb1 " " "T" To iCount
Get ComAppend Of hoSb1 "Z" To iSuccess
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb2
If (Not(IsComObjectCreated(hoSb2))) Begin
Send CreateComObject of hoSb2
End
Get ComAppend Of hoSb2 sT2 To iSuccess
Get ComReplace Of hoSb2 " " "T" To iCount
Get ComAppend Of hoSb2 "Z" To iSuccess
// Load each into a CkDateTime
Get Create (RefClass(cComCkDateTime)) To hoDt1
If (Not(IsComObjectCreated(hoDt1))) Begin
Send CreateComObject of hoDt1
End
Get ComGetAsString Of hoSb1 To sTemp1
Get ComSetFromTimestamp Of hoDt1 sTemp1 To iSuccess
// verify...
Get ComGetAsTimestamp Of hoDt1 False To sTemp1
Showln sTemp1
Get Create (RefClass(cComCkDateTime)) To hoDt2
If (Not(IsComObjectCreated(hoDt2))) Begin
Send CreateComObject of hoDt2
End
Get ComGetAsString Of hoSb2 To sTemp1
Get ComSetFromTimestamp Of hoDt2 sTemp1 To iSuccess
// verify...
Get ComGetAsTimestamp Of hoDt2 False To sTemp1
Showln sTemp1
// Get the difference in seconds
Get pvComObject of hoDt1 to vDt1
Get ComDiffSeconds Of hoDt2 vDt1 To iDiffSeconds
Showln "Difference in seconds: " iDiffSeconds
Showln "Difference in minutes: " (iDiffSeconds / 60)
End_Procedure