Here is the general idea. Determine the time difference between start and end. Determine the number of days between them as well. Subtract from the time difference the (number of days * time that is not business hours)...I don't know if you are measuring in days, hours, or minutes. This covers most cases. Just because you know it will happen, you will probably want to determine the number of weeks or if the range of dates covers a weekend (if the business is closed for them) and then subtract the number of closed days by the business hours (the non-business hours are already accounted for).
How can we know if the dates crossed a weekend? Use the DayOfWeek function. If the end date value is less than the start date, you crossed a weekend. If you are also counting weeks, you will need to adjust for that, but this should give a good start.
Hope it helped