Ну, как насчет:
For lMinute = clDeparture To clArrival - 1
alHour(Int(lMinute / 60)) = alHour(Int(lMinute / 60)) + 1
Next
Учитывая, что вы будете предпринимать какие-либо действия только в течение нескольких минут между clDeparture
и clArrival
, нет смысла проходить через все остальные.
Это простое начало. Конечно, вы можете улучшить его, просматривая каждый час вместо каждой минуты и проверяя, какая часть этого времени была «покрыта» периодом времени. Это было бы сложнее, но, безусловно, выполнимо. Я бы не хотел рисковать, чтобы кодировать это на VB, но я мог бы, вероятно, поднять версию C #, если бы вы действительно этого хотели. Я бы начал с простого кода и посмотрел, достаточно ли это быстро.