Как рассчитать номер недели с учетом даты?

Псевдокод:

int julian = getDayOfYear(myDate)  // Jan 1 = 1, Jan 2 = 2, etc...
int dow = getDayOfWeek(myDate)     // Sun = 0, Mon = 1, etc...
int dowJan1 = getDayOfWeek("1/1/" + thisYear)   // find out first of year's day
// int badWeekNum = (julian / 7) + 1  // Get our week# (wrong!  Don't use this)
int weekNum = ((julian + 6) / 7)   // probably better.  CHECK THIS LINE. (See comments.)
if (dow < dowJan1)                 // adjust for being after Saturday of week #1
    ++weekNum;
return (weekNum)

Чтобы уточнить, этот algorithms алгоритм предполагает, что windows-applications ваши недели пронумерованы c++ следующим образом:

S  M  T  W  R  F  S
            1  2  3    <-- week #1
4  5  6  7  8  9 10    <-- week #2
[etc.]

getDayOfWeek() и c++ getDayOfYear() - стандартные windows-applications операции объекта даты на algorithms большинстве языков. Если windows-application у вас их нет, вы можете отсчитывать algorithm вперед от некоторой известной c++ даты (1 января 1970 года algorithm - обычная дата), посмотрев, какой algorithm это был день недели.

Если cpp вы собираетесь реализовать windows-application свои собственные процедуры algorithm-design подсчета дат, помните, что time годы, которые делятся на algorithms 100, являются НЕ високосными algorithms годами, если они также не windows-programming делятся на 400. Итак, 1900 windows-applications год не был високосным. год, но algorithm 2000 был. Если вы собираетесь cxx работать в далеком прошлом, вам time придется возиться с григорианским algorithms и юлианским календарями и algorithms т. Д., См. Wikipedia для получения algorithm-design дополнительной информации windows об этом.

This link более подробно рассказывает cpp о функциях даты и времени windows в Windows / C++.

c++

windows

algorithm

time

2022-09-22T16:18:54+00:00
Вопросы с похожей тематикой, как у вопроса:

Как рассчитать номер недели с учетом даты?