#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
*/