let business_hours_in_mins = (startTime: datetime, endTime: datetime) {
range day from startofday(startTime) to startofday(endTime) step 1d
| extend weekday_num = toint(format_timespan(dayofweek(day), 'd'))
| where weekday_num between (1 .. 5)
| extend
business_start = day + 9h,
business_end = day + 17h
| extend
effective_start = case(
day == startofday(startTime), iif(startTime > business_start, startTime, business_start),
business_start),
effective_end = case(
day == startofday(endTime), iif(endTime < business_end, endTime, business_end),
business_end)
| where effective_start < effective_end
| extend minutes = datetime_diff('minute', effective_end, effective_start)
| summarize total_business_mins = sum(minutes)
};
business_hours_in_mins(datetime(2024-04-01 08:00:00), datetime(2024-04-08 11:30:00))