#include <stdio.h>
#include <time.h>
int countWeekDays(struct tm d1, struct tm d2) {
time_t time1 = mktime(&d1);
time_t time2 = mktime(&d2);
double ndays = 1 + difftime(time2, time1) / (60 * 60 * 24);
int nsaturdays = (int)((ndays + d1.tm_wday) / 7);
return (int)ndays - 2 * nsaturdays
- (d1.tm_wday == 0 ? 1 : 0)
+ (d2.tm_wday == 6 ? 1 : 0);
}
int main() {
struct tm d1 = {0}; // Initialize to zero
struct tm d2 = {0};
d1.tm_year = 2025 - 1900; d1.tm_mon = 0; d1.tm_mday = 1; // 2025-01-01
d2.tm_year = 2025 - 1900; d2.tm_mon = 0; d2.tm_mday = 7; // 2025-01-07
printf("%d\n", countWeekDays(d1, d2));
d1.tm_year = 2025 - 1900; d1.tm_mon = 1; d1.tm_mday = 1; // 2025-02-01
d2.tm_year = 2025 - 1900; d2.tm_mon = 1; d2.tm_mday = 10; // 2025-02-10
printf("%d\n", countWeekDays(d1, d2));
d1.tm_year = 2024 - 1900; d1.tm_mon = 0; d1.tm_mday = 1; // 2024-01-01
d2.tm_year = 2024 - 1900; d2.tm_mon = 11; d2.tm_mday = 31; // 2024-12-31
printf("%d\n", countWeekDays(d1, d2));
d1.tm_year = 2025 - 1900; d1.tm_mon = 0; d1.tm_mday = 1; // 2025-01-01
d2.tm_year = 2025 - 1900; d2.tm_mon = 11; d2.tm_mday = 31; // 2025-12-31
printf("%d\n", countWeekDays(d1, d2));
return 0;
}
/*
run:
5
6
262
261
*//