How to calculate the week number for a given date in C

1 Answer

0 votes
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

// output the ISO 8601 week number for the given date

int get_week_number(struct tm *timeinfo) {
    char buffer[3];
    
    strftime(buffer, sizeof(buffer), "%V", timeinfo); // (%V gives the ISO 8601 week number)
    
    return atoi(buffer);
}

int main() {
    struct tm timeinfo = {0};
    timeinfo.tm_year = 2025 - 1900; // Year since 1900
    timeinfo.tm_mon = 2;            // March (0-based, so 2 means March)
    timeinfo.tm_mday = 14;          // 14th day

    mktime(&timeinfo);

    int week_number = get_week_number(&timeinfo);
    
    printf("Week number: %d\n", week_number);

    return 0;
}



/*
run:

Week number: 11

*/

 



answered Mar 14, 2025 by avibootz

Related questions

1 answer 80 views
1 answer 112 views
1 answer 116 views
1 answer 113 views
1 answer 111 views
1 answer 108 views
...