Как определить номер недели по дате?

Как определить номер недели по текущей дате на c++?


Ответы (2 шт):

Автор решения: polySladkiy

Быстренько накидал, если какеие-то функции не понятны, погугли, на руском сегменте есть хорошие объяснения.

#include <iostream>
#include <time.h>

int main() {
    time_t rowTime = time(0);
    tm *ptm = localtime(&rowTime);
    ptm->tm_year = 2018 - 1900;

    std::cout << "Enter date and month: ";

    std::cin >> ptm->tm_mday >> ptm->tm_mon;// ввод дня и месяца
    ptm->tm_mon -= 1;
    mktime(ptm);
    
    int wNum = (ptm->tm_yday + 1) / 7;
    if ((ptm->tm_yday + 1) % 7) ++wNum;
    std::cout << wNum << '\n';
    
    return 0;
}
→ Ссылка
Автор решения: Виктор Тихонов

Посчитай количество дней от даты, с которой начинаешь отсчёт недель, например пусть это будет days. А затем просто сделай так: days % 7. Получишь количество недель с начальной даты по сегодняшнюю. Опционально можно добавить условие, которое будет прибавлять/вычитать одну неделю, если дата выпадает на середину недели

→ Ссылка