Consider using Apex instead of formula.
Here's why as of January 2021 (SFDC API Version 50.0) . (@ for edits):
Be skeptical of using formula fields for datetime difference calculations
because of a limitation with formula fields, quoted below:
Important: Be aware of timezone conversion issues when using formula
fields to calculate datetime differences:
Within the Salesforce application, dates & date/times are stored and
managed in UTC (Universal Time Zone or Greenwich Mean Time). Date and
Date/Time field values are converted and displayed in the timezone
specified in your user personal information settings. However, in a
formula, NO TIMEZONE CONVERSION IS PERFORMED. This means, unless you happen to be in London, your date calculations will be off by the
number of hours you are shifted away from GMT (and don't forget about
daylight savings time).
An (imperfect) formula and why its bad:
The problem with formula is, as of January 2021 they have the limitations mentioned above. This next example is imperfect like the one above is imperfect: "Find the Number of Business Hours Between Two Date/Times" here https://developer.salesforce.com/docs/atlas.en-us.usefulFormulaFields.meta/usefulFormulaFields/formula_examples_dates.htm
As of January 2021 it seems that declarative Formulas (incl. flows/workflows/process builder, etc ) are limited in that they cannot access setup menu's concept of BusinessHours (ie
$Setup.DefaultBusinessHours doesnt exist and will not compile/save into a formula).
A system admin could solve using Apex:
Many google results showcase imperfect solutions using a formula field that hardcodes/assumes one timezone, working hours, but often don't control for holidays; and often are not suitable all user time zones. Formulas have strict length limits too so you cannot easily write formulas that handle for all those realities. Therefore until the GA Roadmap matures its declarative featureset, Apex is more accurate/durable at the moment for this question. The logic could call