Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Быстрый алгоритм определения дня недели по дате:

Учтите, что месяц задаётся от 0 (январь) до 11 (декабрь).

Получаемый день недели - от 0 (воскресенье) до 6 (суббота).

unsigned short dayofweek(unsigned short year, unsigned short month, unsigned short day)
{
 unsigned short t1, t2, t2r, t3;
 const unsigned short m[12] = {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5};
  t1 = year - 2000;
  t2 = t1 / 100;
  t2r = t1 % 100;
  t3 = t1 + (t1 >> 2) - t2 + (t2 >> 2) - 1;
  if ( ((t1 & 0x0003 == 0) && ((t2r != 0) || (t2 & 0x0003 == 0))) && (month < 2) ) t3--;
 return (t3 + m[month] + day) % 7;
}

Алгоритм неоднократно проверялся