Как алгоритм Томохико Сакамото, чтобы найти день недели, работа?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

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