PureBasic
PureBasic
Compute Difference Between Two DateTime Strings
Demonstrates how to compute the difference between two datetime strings.Chilkat PureBasic Downloads
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkDateTime.pb"
Procedure ChilkatExample()
; Imagine we have these strings:
t1.s = "2022-11-14 15:45:38"
t2.s = "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.i = CkStringBuilder::ckCreate()
If sb1.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkStringBuilder::ckAppend(sb1,t1)
count.i = CkStringBuilder::ckReplace(sb1," ","T")
CkStringBuilder::ckAppend(sb1,"Z")
sb2.i = CkStringBuilder::ckCreate()
If sb2.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkStringBuilder::ckAppend(sb2,t2)
count = CkStringBuilder::ckReplace(sb2," ","T")
CkStringBuilder::ckAppend(sb2,"Z")
; Load each into a CkDateTime
dt1.i = CkDateTime::ckCreate()
If dt1.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkDateTime::ckSetFromTimestamp(dt1,CkStringBuilder::ckGetAsString(sb1))
; verify...
Debug CkDateTime::ckGetAsTimestamp(dt1,0)
dt2.i = CkDateTime::ckCreate()
If dt2.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkDateTime::ckSetFromTimestamp(dt2,CkStringBuilder::ckGetAsString(sb2))
; verify...
Debug CkDateTime::ckGetAsTimestamp(dt2,0)
; Get the difference in seconds
diffSeconds.i = CkDateTime::ckDiffSeconds(dt2,dt1)
Debug "Difference in seconds: " + Str(diffSeconds)
Debug "Difference in minutes: " + Str(diffSeconds / 60)
CkStringBuilder::ckDispose(sb1)
CkStringBuilder::ckDispose(sb2)
CkDateTime::ckDispose(dt1)
CkDateTime::ckDispose(dt2)
ProcedureReturn
EndProcedure