Количество недель в году

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
like2dev
Сообщения: 138
Зарегистрирован: 2011.05.13, 12:57
Откуда: Kiev

Количество недель в году

Сообщение like2dev »

Немного не могу понять принцип работы функции нахождения количество недель в году

Код: Выделить всё

        for($i = 1970;$i <= (int)date('Y');$i++) {
            print sprintf("Количество недель в %s году = %s <br>",$i,date('W',mktime(0,0,0,1,1,$i)));
        }
 
А вот резульатт

Количество недель в 1970 году = 01
Количество недель в 1971 году = 53
Количество недель в 1972 году = 52
Количество недель в 1973 году = 01
Количество недель в 1974 году = 01
Количество недель в 1975 году = 01
Количество недель в 1976 году = 01
Количество недель в 1977 году = 53
Количество недель в 1978 году = 52
Количество недель в 1979 году = 01
Количество недель в 1980 году = 01
Количество недель в 1981 году = 01
Количество недель в 1982 году = 53
Количество недель в 1983 году = 52
Количество недель в 1984 году = 52
Количество недель в 1985 году = 01
Количество недель в 1986 году = 01
Количество недель в 1987 году = 01
Количество недель в 1988 году = 53
Количество недель в 1989 году = 52
Количество недель в 1990 году = 01
Количество недель в 1991 году = 01
Количество недель в 1992 году = 01
Количество недель в 1993 году = 53
Количество недель в 1994 году = 52
Количество недель в 1995 году = 52
Количество недель в 1996 году = 01
Количество недель в 1997 году = 01
Количество недель в 1998 году = 01
Количество недель в 1999 году = 53
Количество недель в 2000 году = 52
Количество недель в 2001 году = 01
Количество недель в 2002 году = 01
Количество недель в 2003 году = 01
Количество недель в 2004 году = 01
Количество недель в 2005 году = 53
Количество недель в 2006 году = 52
Количество недель в 2007 году = 01
Количество недель в 2008 году = 01
Количество недель в 2009 году = 01
Количество недель в 2010 году = 53
Количество недель в 2011 году = 52
like2dev
Сообщения: 138
Зарегистрирован: 2011.05.13, 12:57
Откуда: Kiev

Re: Количество недель в году

Сообщение like2dev »

Но ведь год только начался.
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: Количество недель в году

Сообщение BuCeFaL »

like2dev писал(а):Немного не могу понять принцип работы функции нахождения количество недель в году

Код: Выделить всё

        for($i = 1970;$i <= (int)date('Y');$i++) {
            print sprintf("Количество недель в %s году = %s <br>",$i,date('W',mktime(0,0,0,1,1,$i)));
        }
 
А вот резульатт

Количество недель в 1970 году = 01
Весь 1970-й год длился одну неделю.
Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Количество недель в году

Сообщение Svyatov »

W - Порядковый номер недели года в соответствии со стандартом ISO-8601, недели начинаются с понедельника (добавлено в версии PHP 4.1.0)

Таким образом ты получаешь порядковый номер недели для указанной даты, а не количество недель в году.
like2dev
Сообщения: 138
Зарегистрирован: 2011.05.13, 12:57
Откуда: Kiev

Re: Количество недель в году

Сообщение like2dev »

1 января хххх года ( ведь год только начался) соответственно если так судить, то должна быть только 1 неделя.

Почему

Количество недель в 2009 году = 01
Количество недель в 2010 году = 53

В 2009 1 января первая неделя, а уже в 2010 1 января 53
Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Количество недель в году

Сообщение Svyatov »

like2dev писал(а):1 января хххх года ( ведь год только начался) соответственно если так судить, то должна быть только 1 неделя.

Почему

Количество недель в 2009 году = 01
Количество недель в 2010 году = 53

В 2009 1 января первая неделя, а уже в 2010 1 января 53
Потому что нужно учить матчасть :) Начало января некоторых годов является последней неделей предыдущего года.
Ответить