Как алгоритм Томохико Сакамото, чтобы найти день недели, работа?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как алгоритм Томохико Сакамото, чтобы найти день недели, работа?

Сообщение Anonymous »

Как работает следующий алгоритм? < /p>

enum DayOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};

static DayOfWeek GetDayOfWeek(unsigned int year, char month, char day) {
char monthTable[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };

year -= (unsigned int)((month < 3) ? 1 : 0);

return (DayOfWeek)((year + year / 4 - year / 100 + year / 400 + monthTable[month - 1] + day) % 7);
}
< /code>

Источник здесь < /p>

может кто -нибудь объяснить, почему он работает и как? < /p>

Подробнее здесь: https://stackoverflow.com/questions/334 ... -week-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»