The formula is brutal, but here is a gift. it will be a formula numeric field type.

The formula uses fields called [Status Start] and [Status End] which are date/time field types.

var timeofday DayStartTime = ToTimeOfDay("8:30 am");

var timeofday DayEndTime = ToTimeOfDay("5:00 pm");

var DateTime StartDateTime = Max([Status Start], ToTimestamp(ToDate([Status Start]), $DayStartTime));

var DateTime EndDateTimeTesting = If(IsNull([Status End]), Now() ,[Status End]);

var DateTime EndDateTime = Min($EndDateTimeTesting, ToTimestamp(ToDate($EndDateTimeTesting), $DayEndTime));

var Number WeekDayDays = WeekdaySub(ToDate($EndDateTime), ToDate($StartDateTime)) + 1; //(we count each day as a full workday)

var number HoursBeforeStartEndAdjustment = $WeekDayDays * ToHours($DayEndTime - $DayStartTime);

var datetime StartDateTimeBounded =

If(ToTimeOfDay($StartDateTime) < $DayStartTime, ToTimestamp(ToDate($StartDateTime), $DayStartTime), $StartDateTime);

var datetime EndDateTimeBounded =

If(ToTimeOfDay($EndDateTime) > $DayEndTime, ToTimestamp(ToDate($EndDateTime), $DayEndTime), $EndDateTime);

Max(0,

Round($HoursBeforeStartEndAdjustment

- Max(0,ToHours(ToTimeOfDay($StartDateTimeBounded) - $DayStartTime))

- Max(0,ToHours($DayEndTime - ToTimeOfDay($EndDateTimeBounded))),0.1))