powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Расчет времени макросом
5 сообщений из 5, страница 1 из 1
Расчет времени макросом
    #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
Расчет времени макросом
    #38511554
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поискать?

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

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

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


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