Sample code for 30+ languages & platforms
DataFlex

Compute Difference Between Two DateTime Strings

Demonstrates how to compute the difference between two datetime strings.

Chilkat DataFlex Downloads

DataFlex
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