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

1 Answer

0 votes
#include <iostream>
#include <ctime>
#include <iomanip>

// assumes that the week starts on January 1st 
int getWeekNumber(int year, int month, int day) {
    std::tm time_in = { 0, 0, 0, day, month - 1, year - 1900 };
    std::mktime(&time_in);
    
    return time_in.tm_yday / 7 + 1;
}

int main() {
    int year = 2025;
    int month = 3;
    int day = 14;

    int weekNumber = getWeekNumber(year, month, day);
    
    std::cout << "The week number for " << year << "-" << std::setw(2) << 
                 std::setfill('0') << month << "-" << std::setw(2) << 
                 std::setfill('0') << day << " is: " << weekNumber << std::endl;

    return 0;
}

 
 
/*
run:
 
The week number for 2025-03-14 is: 11
 
*/

 



answered Mar 14, 2025 by avibootz

Related questions

1 answer 142 views
1 answer 112 views
1 answer 116 views
1 answer 113 views
1 answer 110 views
1 answer 108 views
...