Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как определить вторую пятницу месяца? [2]
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
jfr пишет:
раз тут нам не известно в каком порядке идут дни недели сначало месяца
У меня на календаре они идут всегда в одинаковом порядке. Первое число месяца может быть разным днем недели - это да. Но после него порядок не нарушается. А найти расстояние этого дня недели до пятницы всегда можно вычитанием.
И цикл тут никак не красивее и тем более не производительнее.
jfr пишет:
Все-таки я вас не отрицаю Champion.
Это хорошо: я действтельно вполне реален)
JustUserR
Отправлено: 21 Марта, 2010 - 11:47:15
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
movEAX пишет:
Способ попроще и без циклов
А число месяца откуда вы взяли - нужно указать только месяц и год и по сути составить для него календарь - кстати в моем вариатнте так и есть хотя можно упростить ег и оставить цикл только на 7 дней а длее прибавлять в массив просто соответствующие значения
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Champion
Отправлено: 21 Марта, 2010 - 12:23:59
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
JustUserR, jfr, вы упорно настаиваете, что вариант с циклом, на каждом шаге которого еще и вычисления происходят, превосходит чем-то вариант без цикла?
jfr
Отправлено: 21 Марта, 2010 - 17:10:26
Посетитель
Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010 Откуда: Таджикистан, Худжанд
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
jfr пишет:
$day = 21;
Откуда вы берете $day=21 - это такая константа для дней недели в марте что-ли?
Champion пишет:
JustUserR, jfr, вы упорно настаиваете, что вариант с циклом, на каждом шаге которого еще и вычисления происходят, превосходит чем-то вариант без цикла?
Далеко не настаиваю - и как пример привел возможное решение данонго вопроса когда вычисляется первый день недели в месяце и потом прибавляется нужное число дней и сдвиг - например для нахождения i-ой пятницы берем (5-$first_wday)+1+7*$i
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
movEAX
Отправлено: 22 Марта, 2010 - 17:51:03
Частый посетитель
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
JustUserR пишет:
Откуда вы берете $day=21 - это такая константа для дней недели в марте что-ли?
$wd=date('w',strtotime('01-'.$m.'-'.$y));// Получаем первый день недели
return(($wday-$wd)+1+7*$i);// Выводим i-ый день недели
}
echo get_wday(3,2010,5,1);// Вторая пятница марта 2010 года
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
jfr
Отправлено: 23 Марта, 2010 - 11:39:38
Посетитель
Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010 Откуда: Таджикистан, Худжанд
Помог: 0 раз(а)
[+]
JustUserR пишет:
jfr пишет:
$day = 21;
Откуда вы берете $day=21 - это такая константа для дней недели в марте что-ли?
вместо 21 можно вставить любое число, и переменная $day можно присвоить любым методом без разницы, не зависимо от того какое число берет переменная $day можно вычислить вторую пятницу месяца.Отредактировано модератором: Champion, 23 Марта, 2010 - 14:23:39 Вот ту часть, на которую отвечаешь, - ее и цитируй
JustUserR
Отправлено: 23 Марта, 2010 - 14:11:03
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
jfr пишет:
Вместо 21 можно вставить любое число
А почему именно 21 вы написали? Оно случайно или как-то взаимосвязано именно со второй пятницей месяца
В ответ также жду комментариев по прдложенной мной функции
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Champion
Отправлено: 23 Марта, 2010 - 14:25:25
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
JustUserR пишет:
жду комментариев по прдложенной мной функции
Не могу осмыслить результат работы get_wday(3,2010,-5,98)
JustUserR
Отправлено: 23 Марта, 2010 - 14:28:55
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Champion пишет:
Не могу осмыслить результат работы get_wday(3,2010,-5,98)
Не могу осмыслить результат работы echo getScndFrd(-12,1994)
О проверке аргументов речь пока не шла - но думаю если надо тот кому нужна эта функция добавит соответствующие проверки
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
jfr
Отправлено: 23 Марта, 2010 - 14:42:59
Посетитель
Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010 Откуда: Таджикистан, Худжанд
Помог: 0 раз(а)
[+]
JustUserR пишет:
jfr пишет:
Вместо 21 можно вставить любое число
А почему именно 21 вы написали? Оно случайно или как-то взаимосвязано именно со второй пятницей месяца
В ответ также жду комментариев по прдложенной мной функции
не связано число 21 с пятницей, можно вставить 22 например , если молчу и не написал комментариев по поводу вашей функцией, значит с вашей функцией все окей .
Можно конечно делать мой код ввиде функции, чтобы вычислить не только пятницу и не только вторую (Добавление)
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
jfr, а давай еще восемь переменных сюда добавим и дадим им значения какие-нибудь значения... Это я всё к тому, зачем бессмысленные переменные, которые ни на что не влияют (вот $day)?
jfr
Отправлено: 23 Марта, 2010 - 15:39:43
Посетитель
Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010 Откуда: Таджикистан, Худжанд
Помог: 0 раз(а)
[+]
Champion пишет:
jfr, а давай еще восемь переменных сюда добавим и дадим им значения какие-нибудь значения... Это я всё к тому, зачем бессмысленные переменные, которые ни на что не влияют (вот $day)?
именно через $day - вычисляю необходимый день недели, не используя еще одной функции как strtotime. Как я в коде JustUserR увидел, он с помошью strtotime сначало вычисляет первое число необходимого месяца. Однако можно и без этой функциию
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.