How to compare calendar dates using the Win32 API in C

1 Answer

0 votes
#include <windows.h>
#include <stdio.h>

int CompareDates(const SYSTEMTIME *date1, const SYSTEMTIME *date2) {
    FILETIME ft1, ft2;

    SystemTimeToFileTime(date1, &ft1);
    SystemTimeToFileTime(date2, &ft2);

    return CompareFileTime(&ft1, &ft2); // Returns -1, 0, or 1
}

int main() {
    SYSTEMTIME date1 = { 2025, 5, 0, 17, 0, 0, 0, 0 }; // May 17, 2025
    SYSTEMTIME date2 = { 2025, 5, 0, 18, 0, 0, 0, 0 }; // May 18, 2025

    int result = CompareDates(&date1, &date2);
    if (result < 0)
        puts("Date1 is earlier.");
    else if (result > 0)
        puts("Date1 is later.");
    else
        puts("Dates are equal.");

    return 0;
}



/*
run

Date1 is earlier.

*/

 



answered May 17, 2025 by avibootz
...