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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2007, 14:30   #1  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
DreamCreator
Не правильно спросил. Нужно узнать является ли сегодняшний день последним в неделе. В параметре указываем день(1-7), а результатом является Boolean(true - последний день или false)
У тебя результат выдает по текущему дню последнюю дату такого дня
Старый 21.02.2007, 14:43   #2  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от moid Посмотреть сообщение
DreamCreator
Не правильно спросил. Нужно узнать является ли сегодняшний день последним в неделе. В параметре указываем день(1-7), а результатом является Boolean(true - последний день или false)
У тебя результат выдает по текущему дню последнюю дату такого дня
Наверно снова неправильно понял
X++:
static void testCalcDate(Args _args)
{
    // Это параметр - дата относительно которой надо искать последний день
    // из этой даты используется только месяц
    TransDate   transDate = 27\02\2007;

    // Это искомый последний день недели (понедельник - 1, вторник - 2, и т.д.)
    Days        day = 2;

    // Это последний день (в зависимости от day, если day=1 то searchDate - понедельник)
    TransDate   searchDate;
    ;

    // Последний день месяца
    searchDate = dateEndMth(transDate);

    while(dayOfWk(searchDate) != day)
    {
        searchDate--;
    }

    if(searchDate == transDate)
        print 'Today is last day';
    else
        print 'Not last day';

    pause;
}
Старый 21.02.2007, 14:49   #3  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от moid Посмотреть сообщение
DreamCreator
Нужно узнать является ли сегодняшний день последним в неделе. В параметре указываем день(1-7), а результатом является Boolean(true - последний день или false)
У тебя результат выдает по текущему дню последнюю дату такого дня
А разве 7 день не является последним в неделе???
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 21.02.2007, 15:08   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от moid Посмотреть сообщение
DreamCreator
Не правильно спросил. Нужно узнать является ли сегодняшний день последним в неделе. В параметре указываем день(1-7), а результатом является Boolean(true - последний день или false)
У тебя результат выдает по текущему дню последнюю дату такого дня
Ах, Вы тренер наш по гимнастике для ума!
Я, честно говоря, понял точно так же, как DreamCreator, и у меня такой же метод лечения геморроя, только безИтерационный:
X++:
static void Job55(Args _args)
{
    date DateOfLastWeekdayInMonth (int _lastWeekday, date _date = today () )
    {
        date    eomDate     = endMth( _date );
        int     eomWeekday  = dayOfWk( eomDate );
        return  eomDate - (eomWeekday - _lastWeekday) - (eomWeekday < _lastWeekday ? 7 : 0);
    }
    ;

    info( strFmt('%1', DateOfLastWeekdayInMonth( 1 )) );
    info( strFmt('%1', DateOfLastWeekdayInMonth( 2 )) );
    info( strFmt('%1', DateOfLastWeekdayInMonth( 3 )) );
    info( strFmt('%1', DateOfLastWeekdayInMonth( 4 )) );
    info( strFmt('%1', DateOfLastWeekdayInMonth( 5 )) );
    info( strFmt('%1', DateOfLastWeekdayInMonth( 6 )) );
    info( strFmt('%1', DateOfLastWeekdayInMonth( 7 )) );
}
Результат:
26.02.2007
27.02.2007
28.02.2007
22.02.2007
23.02.2007
24.02.2007
25.02.2007
За это сообщение автора поблагодарили: moid (1).
Старый 21.02.2007, 15:15   #5  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
DreamCreator
рано спасибо сказал, результат выдает только для последнего вторника текщего месяца правильно почему-то...А остальные пишет, что не последний
Старый 21.02.2007, 15:22   #6  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от moid Посмотреть сообщение
DreamCreator
рано спасибо сказал, результат выдает только для последнего вторника текщего месяца правильно почему-то...А остальные пишет, что не последний
X++:
Days        day = 2;
Не в этом дело?

(т.е. job не принимает параметров -- он настроен только на второй день при небольшой доработке - можно все переменные оформить в виде параметров)
+ У Gustav оформленный вариант, с меньшим числом строк!!
Теги
дата

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подробный отчет по датам к оплате ax_f DAX: Функционал 3 15.11.2004 17:10
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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