Номер недели по дате | |
---|---|
Vedmak Сообщений: 5949 Откуда: CiTY Дата регистрации: 30.10.2003 |
Как программно получить номер недели по дате ?
Не перебором же всех понедельников с начала года ? |
Re: Номер недели по дате | |
---|---|
PrSymbol Сообщений: 682 Откуда: Москва Дата регистрации: 01.06.2004 |
WEEK()
------------------ You will not be able to open password-protected files, even if you know the password. (c) MS 2007 |
Re: Номер недели по дате | |
---|---|
sphinx Сообщений: 31166 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
> программно получить номер недели по дате
Смотря от чего считать номер недели... Если от начала года, то CEILING((DATE() - {^2007-01-01})/7) ------------------ "Veni, vidi, vici!"(с) |
Re: Номер недели по дате | |
---|---|
Vedmak Сообщений: 5949 Откуда: CiTY Дата регистрации: 30.10.2003 |
блиииин я же знал !
|
Re: Номер недели по дате | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Вот еще один - хелп перед сном не читает
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Номер недели по дате | |
---|---|
iren Сообщений: 511 Дата регистрации: 28.10.2003 |
Если от начала года, то использую такую функцию:
DatServ- дата, получаемая с сервера (или DATE()) |
Re: Номер недели по дате | |
---|---|
iren Сообщений: 511 Дата регистрации: 28.10.2003 |
Забыла уточнить: т.к. мне нужно получать в виде: NNGGGG (NN - N недели с нач.года,GGGG - год), поэтому вычисляю m.lcdirNomn
|
Re: Номер недели по дате | |
---|---|
PrSymbol Сообщений: 682 Откуда: Москва Дата регистрации: 01.06.2004 |
а все же зачем используете CEILING ?
какой то потаенный смысл ? ------------------ You will not be able to open password-protected files, even if you know the password. (c) MS 2007 |
Re: Номер недели по дате | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
С начала года прошел 1 день (1 января) делим на 7, получаем 0,14 - это какая неделя? Нулевая? Или все-таки первая? |
Re: Номер недели по дате | |
---|---|
PrSymbol Сообщений: 682 Откуда: Москва Дата регистрации: 01.06.2004 |
Не-а я не про саму функцию CEILING
а почему не WEEK({01.01.07}, nFirstWeek , nFirstDayOfWeek) ------------------ You will not be able to open password-protected files, even if you know the password. (c) MS 2007 |
Re: Номер недели по дате | |
---|---|
Вячеслав Клепинин Сообщений: 1597 Откуда: Санкт-Петербург Дата регистрации: 26.03.2004 |
WEEK лучше всего. Там настройки есть. А то ведь неделя у некоторых не только с понедельника начинается. Ну и ещё бывает, что начинается неделя в одном году, а продолжается в другом. Вот ведь как бывает! А учитывать такие ньюансы иногда очень важно.
|
Re: Номер недели по дате | |
---|---|
Vedmak Сообщений: 5949 Откуда: CiTY Дата регистрации: 30.10.2003 |
Интересно. Но номер недели возвращаемый функцией WEEK() для 31.12.2007 равен 1.
Этоже не правильно. |
Re: Номер недели по дате | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Почему неправильно? 30.12.2007 - это воскресенье. Последний день недели. Следующая неделя, в основном, находится в 2008 году и имеет порядковый номер 1. Логично, что первый день этой недели, также относится к этой неделе. Об этом написано в комментарии по этой команде Функция WEEK( )
Вообще-то, все крутится вокруг того, что именно подразумевать под термином "неделя". Толкований может быть много. Если под этим понимается просто 7 дней безотносительно того, когда отсчитывать начало и конец, то зачем нужна функция Week()? Просто поделите на 7 и возьмите ближайшее большее целое число. |
Re: Номер недели по дате | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Действительно, как уже и заметили - недели бывают разные.
Так что по сути вроде все верно. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Номер недели по дате | |
---|---|
Vedmak Сообщений: 5949 Откуда: CiTY Дата регистрации: 30.10.2003 |
как все непросто на этом свете...
|
Re: Номер недели по дате | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Все проблемы - только из-за того, что 1 января не всегда начинается новая неделя. Поэтому и столько условностей - что считать первой неделей, и должно ли входить туда 31 декабря.
Если бы 1 января каждый год было понедельником, все было бы намного проще. Однажды где-то читал кстати про такой проект календаря. Французские математики что ли придумали. Все месяцы предлагали сделать одинаковыми - по 30 дней. А между сезонами внемесячные праздники - день весны, день лета и т.д. Потом под новый год добавить еще один внемесячный праздник - день года, а для високосных добавлять еще один - день мира. Тогда каждый день года всегда бы приходился на один и тот же день недели. Этот проект вроде даже выдвигали куда-то в международные организации, но там зарубили на корню, потому как слишком нарушались бы традиции. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Номер недели по дате | |
---|---|
GreyCat Автор Сообщений: 12 Дата регистрации: 06.07.2010 |
Цитата:Так, так так. Выбираю в соответствии с этим в функции Week() параметр 2 (Первой считается неделя, большая часть которой (четыре дня) приходится на текущий год.), как наиболее подходящий. Проверяю, благо далеко ходить не надо. 1 января 2017 приходится на воскресенье и неделя должна относится к предыдущему году. Week({^2017-1-1},2) Выдает 1, а должно 52. SET FWEEK TO - эффекта не дает. Это только у меня или у всех такое? |
Re: Номер недели по дате | |
---|---|
AndyNigmatec Сообщений: 1552 Откуда: Волгоград Дата регистрации: 28.06.2015 |
|
Re: Номер недели по дате | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Так не у всех же неделя с понедельника начинается. Смотрите третий параметр. ------------------ |
Re: Номер недели по дате | |
---|---|
GreyCat Автор Сообщений: 12 Дата регистрации: 06.07.2010 |
Большое спасибо. Вот называется заклинило на одном. Про последний параметр забыл. А ведь в хелпы лазил. Выручили. А то я тут уже взялся писать собственную функцию. |
© 2000-2024 Fox Club  |