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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.03.2011, 14:10   #1  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Так. Стоп.

1. Вы согласны, что приведенная функция работает некорректно?
Или Вы считаете, что 27.12.10 - , 26.12.11 - , 24-30.12.12 - это 1 рабочая неделя??
2. Если Вы согласны, что это не так, что это 53 недели в году, тогда идем дальше.
Вы согласны, что ошибка возникает именно в методе WeekOfYear?
3. Вы согласны, что они возникает именно при первой проверке if (week > 52)?

Итак, если Вы согласны, то осталось понять, а как исправить функцию, что бы она возвращала корректные значения для России.

Этого можно добиться, исключив данную проверку (для России). Рассматривать расчет testDate, как Вы уже указали, некорректно, так как цель данного расчет - это посмотреть, не переходит ли неделя через год и сбросить счетчик текущей недели.

Согласны? Или есть какие-либо подводные камни, которые я не учел?

С Уважением,
Георгий
Старый 10.03.2011, 14:31   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от George Nordic Посмотреть сообщение
1. Вы согласны, что приведенная функция работает некорректно?
Или Вы считаете, что 27.12.10 - , 26.12.11 - , 24-30.12.12 - это 1 рабочая неделя??
Не знаю. Никогда не приходилось сталкиваться с этой функцией, а тут нужно смотреть именно на контекст применения этой функции. Теоретически оба варианты имеют право на существование.

Цитата:
Сообщение от George Nordic Посмотреть сообщение
Итак, если Вы согласны, то осталось понять, а как исправить функцию, что бы она возвращала корректные значения для России.
Этого можно добиться, исключив данную проверку (для России).
Да, если убрать данную проверку, то результат будет другим, возможно для кого-то более ожидаемым.

P.S.: И ещё, чтобы не вводить никого в заблуждение, мы же говорим не о рабочих неделях, а о календарных. В том смысле, что праздничные дни никак на результат не влияют

Последний раз редактировалось S.Kuskov; 10.03.2011 в 14:33.
Старый 10.03.2011, 14:47   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от George Nordic Посмотреть сообщение
1. Вы согласны, что приведенная функция работает некорректно?
Не согласен. Некорректно в каком случае? В стандартной Аксапте она используется только для отображения номера недели в форме SysDateLookUp. И в этом контексте выглядит все логично.

А если кто-то будет использовать данную функцию в ином контексте, не разобравшись в принципе ее работы, посмотрев только на название, то он сам себе злобный буратино. Хотя да, могли бы в методе сверху написать об "особенности" определения номера недели в конце года, чтобы не было соблазна воспользоваться ей в неподобающем месте.
За это сообщение автора поблагодарили: George Nordic (1), S.Kuskov (1).
Старый 10.03.2011, 16:21   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
P.S.: И ещё, чтобы не вводить никого в заблуждение, мы же говорим не о рабочих неделях, а о календарных. В том смысле, что праздничные дни никак на результат не влияют
Рабочая неделя - это продолжительность работы в течение календарной недели в часах. Так что это немного не то... Я понял, о чем Вы говорите. Да, для этих целей необходимо использовать функциональность календарей. Нумерация рабочих недель совпадает с нумерацией календарных недель. 1 рабочая неделя начинается 1 января, а не 11 января.
Цитата:
Сообщение от oip Посмотреть сообщение
В стандартной Аксапте она используется только для отображения номера недели в форме SysDateLookUp. И в этом контексте выглядит все логично.
Ох же ты! Надо же, не ожидал, спасибо. Не ожидал, что в Sys используется функция куда высшего слоя..
Цитата:
Сообщение от oip Посмотреть сообщение
А если кто-то будет использовать данную функцию в ином контексте, не разобравшись в принципе ее работы, посмотрев только на название, то он сам себе злобный буратино. Хотя да, могли бы в методе сверху написать об "особенности" определения номера недели в конце года, чтобы не было соблазна воспользоваться ей в неподобающем месте.
Хм. а что еще ожидать от функции с таким названием? Или предлагаешь под каждый чих свою функцию писать? Неразумно. Стандарт - он на то и стандарт, что ждешь от него стандартного предсказуемого поведения, а не кренделей.

С Уважением,
Георгий
Старый 12.03.2011, 22:27   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Если учитывать, что в DAX2009 серьезно переписали подсистему работы с датами, то удивляться различию между DAX4 (и Ax3.0) и DAX2009 в результатах в общем-то не стоит (например, метод firstWeekOfYear класса Global полностью переписан на использование NET, поэтому в DAX2009 работает общая логика Win, а не особенности Ax).
Ну, и тем более, влияет серьезное изменение метода weekOfYear того же класса Global.

Последний раз редактировалось Raven Melancholic; 12.03.2011 в 22:40.
Теги
weekofyear

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Баг на форме "Проводки по сопоставлению" S.Kuskov DAX: Программирование 12 29.04.2009 19:19
Тендер на внедрение модуля "Управление персоналом" и "Расчеты с персоналом" Oxsana DAX: Прочие вопросы 5 02.05.2006 19:47
Галка "Закрыто" на таблице "В наличии" sev DAX: Функционал 1 11.04.2006 10:19
баг в 2.5. Будьте осторожнее с символом "_" подчеркивание levsha DAX: Программирование 5 07.12.2004 12:26
"LIKE" и "OR" в "qbds" @x DAX: Программирование 14 20.01.2004 13:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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