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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.12.2011, 15:02   #1  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Интервал в часах с учетом рабочего времени
Собственно сабж, есть 2 utcdatetime есть ли какой то класс который позволяет вычислить разницу в часах между датами с учетом календаря раб времени?
Старый 26.12.2011, 15:42   #2  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,200 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Вы учтите, что у разных сотрудников может быть разный рабочий календарь с разными рабочими днями и рабочими часами, поэтому разница будет разная.
Старый 26.12.2011, 15:49   #3  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Цитата:
Сообщение от Zabr Посмотреть сообщение
Вы учтите, что у разных сотрудников может быть разный рабочий календарь с разными рабочими днями и рабочими часами, поэтому разница будет разная.
Ну пока он один для всех, просто хотел уточнить есть ли какие то готовые классы?
Старый 26.12.2011, 16:30   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Возьмите за основу \Data Dictionary\Tables\WorkCalendarDate\Methods\calcDefinedSeconds
За это сообщение автора поблагодарили: AngelDominantes (1).
Старый 26.12.2011, 16:47   #5  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
X++:
static void Job63(Args _args)
{
    TransDateTime       fromDateTime = DateTimeUtil::newDateTime(str2date("01.12.2011", 123), 0);
    TransDateTime       toDateTime = DateTimeUtil::newDateTime(str2date("31.12.2011", 123), str2time("23:59:59"));
    TransDateTime       countDateTime;
    Seconds             secs;
    CalendarId          calendarId = "TEST"; // календарь должен существовать
    ;

    countDateTime = fromDateTime;
    while(countDateTime<=toDateTime)
    {
        if (countDateTime == fromDateTime)
        {
            secs +=WorkCalendarDate::calcDefinedSeconds(calendarId, DateTimeUtil::date(countDateTime), 
                DateTimeUtil::time(countDateTime), str2time("23:59:59"));
        }
        else
        if (countDateTime == toDateTime)
        {
            secs +=WorkCalendarDate::calcDefinedSeconds(calendarId, DateTimeUtil::date(countDateTime), 
                0, DateTimeUtil::time(countDateTime));
        }
        else
        {
            secs +=WorkCalendarDate::calcDefinedSeconds(calendarId, DateTimeUtil::date(countDateTime),
                0, str2time("23:59:59"));
        }
    
        countDateTime = DateTimeUtil::addDays(countDateTime,1);
    }

    info(strFmt("%1", secs/3600));
}
За это сообщение автора поблагодарили: AngelDominantes (1).
Старый 27.12.2011, 08:42   #6  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Спасибо
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Невозможно отредактировать запись в Табель учета рабочего времени(итоги) (RPayTblTrans) NNB DAX: Программирование 5 05.02.2009 09:51
табель учета рабочего времени nvg DAX: Функционал 3 10.10.2007 09:04
Проблема с учетом времени по командировке. Spider DAX: Функционал 13 05.12.2005 10:25
Расчет отпуска (суммирован. учет рабочего времени) MNG DAX: Функционал 1 30.11.2005 17:44
Учет рабочего времени Orion DAX: Функционал 1 18.07.2005 16:52

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:16.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.