Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено adw 29 ноября 2004 г. 13:43
В ответ на: Как можно узнать по числу и году какой день недели? Может есть какие нибудб формулы? отправлено vesago 29 ноября 2004 г. 13:14

Я делал так:

//определяем кол-во дней в целых годах
work = (unsigned int)365 * year + ((year + 3) >> 2);

//определяем кол-во дней в целых месяцах
cnt = month;
while(--cnt)
{
if((cnt == 2) && !(0x03 & year))
work++;
work += days[cnt-1];
};

//добавляем дни и находим остаток от деления на 7
work = (work + day + 4) % 7;

Здесь days[12] - массив, определяющий кол-во дней в каждом месяце,
work - unsigned int,
cnt - unsigned char,
в результате 0-пон, 1-вт и тд.
Работает начиная с 2000 года.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru