C
C
Compute Difference Between Two DateTime Strings
Demonstrates how to compute the difference between two datetime strings.Chilkat C Downloads
#include <C_CkStringBuilder.h>
#include <C_CkDateTime.h>
void ChilkatSample(void)
{
const char *t1;
const char *t2;
HCkStringBuilder sb1;
int count;
HCkStringBuilder sb2;
HCkDateTime dt1;
HCkDateTime dt2;
int diffSeconds;
// 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...
printf("%s\n",CkDateTime_getAsTimestamp(dt1,FALSE));
dt2 = CkDateTime_Create();
CkDateTime_SetFromTimestamp(dt2,CkStringBuilder_getAsString(sb2));
// verify...
printf("%s\n",CkDateTime_getAsTimestamp(dt2,FALSE));
// Get the difference in seconds
diffSeconds = CkDateTime_DiffSeconds(dt2,dt1);
printf("Difference in seconds: %d\n",diffSeconds);
printf("Difference in minutes: %d\n",diffSeconds / 60);
CkStringBuilder_Dispose(sb1);
CkStringBuilder_Dispose(sb2);
CkDateTime_Dispose(dt1);
CkDateTime_Dispose(dt2);
}