БлогNot. Номер недели в году на PHP и в Excel

Номер недели в году на PHP и в Excel

Тьфу ты, если с днём недели всё очевидно -

$wd = date('w',mktime(0,0,0,Месяц,День,Год));
if ($wd==0) $wd=7;
 //Получить номер дня недели 1-7 (Пн-Вс)

то про формат 'W' большое (как раз номер недели в году) чуть не забыл. Меж тем, всё весьма просто:

$wn=date('W',mktime(0,0,0,Месяц,День,Год));
 //Получить номер недели 01-52
 //"Неполные" недели в начале и конце года будут иметь номера 52 и 01 соотв.

По стандарту ИСО 8601, он же ГОСТ ИСО 8601-2001, первой рабочей неделей года считается та, на которую выпадает первый четверг года. То есть, первая неделя года – это та, на которую пришлось больше трех дней (больше половины недели) из наступившего года. Некоторое неудобство в том, что в году получается когда 52, а когда 53 рабочих недели. Плюс ко всему 1 января может запросто оказаться 52 неделей предыдущего года.

Но именно этот вариант официально принят в России с 2002 года как государственный и остается им на данный момент.

В Excel для подсчёта номера недели по такой системе можно использовать следующую формулу:

=ЦЕЛОЕ((A1-ДАТА(ГОД(A1-ДЕНЬНЕД(A1-1)+4);1;3)+ДЕНЬНЕД(ДАТА(ГОД(A1-ДЕНЬНЕД(A1-1)+4);1;3))+5)/7)

Предполагаем, что в ячейке A1 лежит дата. Вроде работает так же, выдавая ответ числом в диапазоне значений 1-52.

28.08.2012, 23:33 [11973 просмотра]


теги: памятка php дата excel

К этой статье пока нет комментариев, Ваш будет первым