Sample code for 30+ languages & platforms
C

Compute Difference Between Two DateTime Strings

Demonstrates how to compute the difference between two datetime strings.

Chilkat C Downloads

C
#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);

    }