AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.02.2007, 09:30   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от moid Посмотреть сообщение
...номер недели текущего месяца?
Зависит от того, что Вы вкладываете в это понятие:
- можно конкретное число месяца поделить на 7 и округлить в нужную сторону
- а можно вычислить неделю года от конкретного числа месяца и потом из нее вычесть неделю года от первого числа этого месяца

Вы уверены, что Вам нужен именно месяц, а не год?
Старый 20.02.2007, 09:34   #2  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Когда то писал что то подобное сейчас уже не помню, а посмотри для начала формочку SysDateLookup там прорисовываются на grid недели по определенному году
Старый 20.02.2007, 10:45   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Gustav Посмотреть сообщение
Зависит от того, что Вы вкладываете в это понятие:
- можно конкретное число месяца поделить на 7 и округлить в нужную сторону
- а можно вычислить неделю года от конкретного числа месяца и потом из нее вычесть неделю года от первого числа этого месяца
Я коллеге сразу предлагал сначала определиться:

X++:
static void Job11(Args _args)
{
    ;
    // ЛИБО
    info( int2str( trunc((dayOfMth(today())-1)/7) + 1 ) );

    // ЛИБО
    info( int2str( wkofyr(today()) - wkofyr(dateStartMth(today())) + 1) );
}

P.S. Дозвольте еще сюда эту темку до кучи прицепить. Может, на что сгодится. Люблю я всякие такие штучки с датами.
Старый 03.12.2009, 16:54   #4  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Цитата:
Сообщение от Gustav Посмотреть сообщение
Я коллеге сразу предлагал сначала определиться:

X++:
static void Job11(Args _args)
{
    ;
 
    // ЛИБО
    info( int2str( wkofyr(today()) - wkofyr(dateStartMth(today())) + 1) );
}
Некорректно определяет неделю для января/конца декабря (из-за упомянутого выше стандарта ISO Week numbers).
Например, для 11.01.2010 получается -50, для 31.12.2008 = -47...

Вот "самый" правильный вариант:
X++:
// Номер недели месяца
static int wkOfMth(date _date)
{
    return (dayOfMth(_date) + dayOfWk(dateStartMth(_date)) + 5) div 7;
}
Старый 04.12.2009, 12:15   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,720 / 1207 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Bishop Посмотреть сообщение
Вот "самый" правильный вариант:
Если уж Вы подняли тему более чем двухлетней давности, то неплохо бы было ознакомится со всеми статьями на эту тему

количество месяцев...

В данном случае, так и не был получен ответ на вопрос с какого дня начинать отсчет недель? С первого числа месяца? С первого понедельника месяца? С первой недели года пришедшейся на первое сило месяца? А как считать неполные недели в начале и конце месяца? Следует ли их вообще учитывать?

От того, какие правила будут приняты для расчета и будет зависеть какой именно "самый правильный" алгоритм следует использовать. Нет единого общего решения.
Теги
дата, функции

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Номер сеанса активного пользователя KiselevSA DAX: Администрирование 3 22.11.2006 14:32
Почему не дает проставлять инв.номер ОС через закупку? Pismarkina DAX: Функционал 5 03.11.2006 15:49
Код аналитики 'Номер партии' отмечен в складских проводках со значением Antidot DAX: Программирование 9 29.07.2005 10:57
Номер накладной поставщика в purchFormLetter.update SNG DAX: Программирование 8 24.03.2004 10:03
Номер партии Biosoft DAX: Функционал 0 01.07.2003 14:07

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:08.