Как определить номер недели по дате?
Как определить номер недели по текущей дате на 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. Получишь количество недель с начальной даты по сегодняшнюю. Опционально можно добавить условие, которое будет прибавлять/вычитать одну неделю, если дата выпадает на середину недели