Как определить день недели

Для того чтобы узнать день недели определённой даты, не возникает особой сложности.
Например в PHP это можно сделать так

date("N"); // Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлен в версии PHP 5.1.0). от 1 (понедельник) до 7 (воскресенье)
date("L"); // Полное наименование дня недели. От Sunday до Saturday
date("n"); // Порядковый номер дня недели. От 0 (воскресенье) до 6 (суббота)

подробнее можно прочитать в документации к функции date()

На JavaScript это же можно сделать так

var date = new Date();
date.getUTCDay(); // Возвращает текущий день недели согласно UTC (от 0 до 6)

Если же хочется написать велосипед, или просто интересно как это вычисляется. То можно это сделать двумя способами:
1) С помощью формулы Зеллера
2) С помощью не сложных вычислений:

month, day, year — номер месяца, день, год
a = (14 – month) / 12
y = year – a
m = month + 12 * a – 2
day_of_week = (7000 + (day + y + y / 4 – y / 100 + y / 400 + (31 * m) / 12)) MOD 7

где (/ — целочисленное деление, MOD — нахождение остатка)
В итоге получится число от 0 до 6.
0 — воскресенье, 6 — суббота

Все довольно таки просто.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *