26.12.2011, 15:02 | #1 |
Участник
|
Интервал в часах с учетом рабочего времени
Собственно сабж, есть 2 utcdatetime есть ли какой то класс который позволяет вычислить разницу в часах между датами с учетом календаря раб времени?
|
|
26.12.2011, 15:42 | #2 |
Участник
|
Вы учтите, что у разных сотрудников может быть разный рабочий календарь с разными рабочими днями и рабочими часами, поэтому разница будет разная.
|
|
26.12.2011, 15:49 | #3 |
Участник
|
|
|
26.12.2011, 16:30 | #4 |
Banned
|
Возьмите за основу \Data Dictionary\Tables\WorkCalendarDate\Methods\calcDefinedSeconds
|
|
|
За это сообщение автора поблагодарили: AngelDominantes (1). |
26.12.2011, 16:47 | #5 |
Axapta Retail User
|
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 |
Участник
|
Спасибо
|
|