Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Расчет времени макросом / 5 сообщений из 5, страница 1 из 1
24.12.2013, 20:30
    #38511492
bboyRALF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет времени макросом
Доброго времени, помоги те научить функцию отсекать выходные : субботу и воскресенье.
Подумал добавить функцию ЧИСТРАБДЕНЬ, но безуспешно...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function RabocheeVremya(Date1, ByVal Date2)
    Dim DateStart  As Date, Nochi%
   ' Dim IntKolDney$
'IntKolDney(1, 1) = Application.WorksheetFunction.NetworkDays(DtmDataDol, DtmDataVozvr)
    Nochi = DateValue(Date2) - DateValue(Date1)
    If TimeValue(Date1) > TimeSerial(18, 0, 0) Then
        DateStart = DateValue(Date1) + TimeSerial(18, 0, 0)
    ElseIf TimeValue(Date1) < TimeSerial(8, 0, 0) Then
        DateStart = DateValue(Date1) + TimeSerial(8, 0, 0)
    Else
        DateStart = Date1
    End If
    If TimeValue(Date2) > TimeSerial(18, 0, 0) Then
        Date2 = DateValue(Date2) + TimeSerial(18, 0, 0)
    ElseIf TimeValue(Date2) < TimeSerial(8, 0, 0) Then
        Date2 = DateValue(Date2) + TimeSerial(8, 0, 0)
    End If
    RabocheeVremya = DateDiff("n", DateStart, Date2) - Nochi * 840 ' - Application.WorksheetFunction.NetworkDays(Date1, Date2) ' 14 часов нераб.
End Function


Исходные данные в excel след виде


08.12.201318:15 09.12.2013 10:44 989
...
Рейтинг: 0 / 0
24.12.2013, 21:56
    #38511554
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет времени макросом
А поискать?

Неплохо помнить, что надо задействовать четвёртый и пятый аргументы функции DateDiff()

Кроме того, в реальной жизни выходные иногда переносятся, есть праздники, есть предпраздничные дни; меняются расписания (графики) рабочего времени... Кстати, =ЧИСТРАБДНИ() вполне можно использовать - надо только отдельно создать (или задать в формуле в виде массива) список всех праздников на рабочий период.
...
Рейтинг: 0 / 0
24.12.2013, 23:46
    #38511616
bboyRALF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет времени макросом
AndreTM,

Если указывать все, то получается много мароки... А ее не хочется, есть стандартные суббота - воскресенье.. И этого достаточно. Они редко переносятся.
...
Рейтинг: 0 / 0
25.12.2013, 00:27
    #38511637
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет времени макросом
bboyRALFесть стандартные суббота - воскресенье.. И этого достаточно. Они редко переносятсяВы настолько уверены? В РФ - 14 праздников на год, в 2014 году - 3 переноса, 6 предпраздничных... И эти данные не логически вычисляются, а утверждаются Правительством . Или вы не из России (то-то я смотрю - у вас рабочий день по 10 часов )?
В любом случае, боевое приложение (особенно связанное с реальными расчётами по ЗП) должно учитывать такие "толстые тонкости" ещё на этапе проектирования.
...
Рейтинг: 0 / 0
25.12.2013, 00:46
    #38511649
bboyRALF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет времени макросом
AndreTM,
Вопрос решен, благодарствую.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Расчет времени макросом / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]