Страница: 1 |
Страница: 1 |
Вопрос: Function CalcTime
Добавлено: 07.09.07 11:07
Автор вопроса: dropofpoison
Public Function CalcTime(DateFrom, DateTill, WorkHour)
If DateFrom >= DateTill Then
CalcTime = 0
Exit Function
End If
For i = Month(DateFrom) To Month(DateTill)
CalcTime = CalcTime + Worksheets(3).Cells(i + 1, 34)
Next i
For i = 1 To Day(DateFrom) - 1
If Worksheets(3).Cells(Month(DateFrom) + 1, i + 2).Interior.ColorIndex = 15 Then
CalcTime = CalcTime - 1
End If
Next i
For i = Day(DateTill) + 1 To 31
If Worksheets(3).Cells(Month(DateTill) + 1, i + 2).Interior.ColorIndex = 15 Then
CalcTime = CalcTime - 1
End If
Next i
CalcTime = CalcTime * WorkHour
End Function
Объясните, пожалуйста, что делает эта функция.
Заранее спасибо
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
ПтирЯ
Вопросов: 11
Ответов: 71
Профиль | | #1
Добавлено: 07.09.07 17:15
Похоже, что она сначала расчитывает и записывает в переменную CalcTime количество отработанных дней за период с DateFrom до DateTill
а затем в эту же переменную высчитывает количество отработанных часов.
P.S. если присутствует неспособность к прочтению кода, так может и не стоит соваться в эту область?
Номер ответа: 2
Автор ответа:
dropofpoison
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 07.09.07 17:29
Спасибо за бессмысленный ответ и нравоучение.
Ещё раз, для тех кто в танке.
Есть функция (код в первом сообщение), которая применяется в Excel (в одной финансовой модели)для вычисления какого-то времени. Хочется понять ЛОГИКУ работы данного инструмента.
Примечание:
DateFrom 01.08.07 = C1
DateTill 10.09.07 = D2
WorkHour 8
=calcTime(C12;8)
результат: 232 (что подразумевается во значением 232?).
P.S. Никогда не программировал и не хочу лезть со своим уставом в чужой монастырь.
Заранее всем спасибо.
Буду ждать ответов
Номер ответа: 3
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #3
Добавлено: 07.09.07 21:26
а затем в эту же переменную высчитывает количество отработанных часов.
CalcTime - это не переменная а имя функции ... аналог return
Судя по всему Вас устроит такой ответ:
DateFrom - дата начала периода
DateTill - дата окончания периода
WorkHour - рабочих часов в день
результат: всего рабочих часов в данном периоде при 8-ми часовом рабочем дне
З.Ы. правильность работы сомнительна
Номер ответа: 4
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #4
Добавлено: 08.09.07 00:05
Если СКакого ЭтоПозжеЧем ПоКакое, то ни хрена часов нет; на выход с вещами.
От месяца, которму принадлежит СКакого, до месяца, которому принадлежит ПоКакое, включительно:
Притырить с тупой таблицы на листе номер 3 количество рабочих часов в этом месяце (из столбика №34), притыренное сложить в одну кучу, чтобы получилось колво часов во всех месяцах в сумме
Петлять
Пройтись по всем дням того месяца, которому принадлежит СКакого, начиная первым и заканчивая СКаким (невключительно)
И если ни дай бог этот день в тупой табличке на листе №3 помечен красным, то вычесть нах один рабочий день из скакулированной пока суммы! Ибо нех работать в праздник.
Петлять
Пройтись по всем дням того месяца, которому принадлежит ПоКакое, начиная сразу после ПоКакого и заканчивая 31м (даже если это февраль -- нам же море по колено!)
И если ни дай бог этот день в тупой табличке на листе №3 помечен красным, то вычесть нах один рабочий день из скакулированной пока суммы! Ибо нех работать в праздник.
Петлять
Умножить полученное количество дней на количество часов в день, которое, как начальство по глупости своей предполагает, кто-то отрабатывает в день. Вернуть этот бессмысленный результат пользователю.
Конец тупой функции
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 08.09.07 00:13
ЗЫ. Этот вопрос в форуме "ASP и VBScript" есть тупость. Будучи не знающим, что куда помещать и что как называется, правильнее всего зайти в Общий раздел.
Номер ответа: 6
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #6
Добавлено: 08.09.07 12:51
Если СКакого ЭтоПозжеЧем ПоКакое, то ни хрена часов нет; на выход с вещами.
От месяца, которму принадлежит СКакого, до месяца, которому принадлежит ПоКакое, включительно:
Притырить с тупой таблицы на листе номер 3 количество рабочих часов в этом месяце (из столбика №34), притыренное сложить в одну кучу, чтобы получилось колво часов во всех месяцах в сумме
Петлять
Пройтись по всем дням того месяца, которому принадлежит СКакого, начиная первым и заканчивая СКаким (невключительно)
И если ни дай бог этот день в тупой табличке на листе №3 помечен красным, то вычесть нах один рабочий день из скакулированной пока суммы! Ибо нех работать в праздник.
Петлять
Пройтись по всем дням того месяца, которому принадлежит ПоКакое, начиная сразу после ПоКакого и заканчивая 31м (даже если это февраль -- нам же море по колено!)
И если ни дай бог этот день в тупой табличке на листе №3 помечен красным, то вычесть нах один рабочий день из скакулированной пока суммы! Ибо нех работать в праздник.
Петлять
Умножить полученное количество дней на количество часов в день, которое, как начальство по глупости своей предполагает, кто-то отрабатывает в день. Вернуть этот бессмысленный результат пользователю.
Конец тупой функции
LOL )) смеялсо
Номер ответа: 7
Автор ответа:
dropofpoison
Вопросов: 1
Ответов: 2
Профиль | | #7
Добавлено: 08.09.07 20:06
Большое спасибо за доступный и ясный ответ г-ну GSerg.
Номер ответа: 8
Автор ответа:
ПтирЯ
Вопросов: 11
Ответов: 71
Профиль | | #8
Добавлено: 10.09.07 08:56
Батенька, так с поскриптума и надо было начинать!
Ответ-то был рассчитан на программиста, хотя бы начинающего. А так - каков вопрос - таков и ответ.