Coach

Greetings! This is another post highlighting a beast mode from my Domo IDEAs conference session. This one covers how to add a specific number of business days into the future.

Problem:

Solution:

We convert the number of business days into the actual days. Convert the number of business days into full weeks and multiply by 7 to get the total days. Then add the remaining days and some extra days if we cross over a weekend.

```-- Author:
-- Created:
-- Description: Add 6 business days to the specific date in the `dt` field.
-- NOTE: This is a lazy calculation which doesn't take into account holidays or other days
-- the business may be closed.
-- ALSO - This assumes M-F as the work week.
`dt` +
-- Calculate the number of days. in this example replace 6 with the number of business days to add
INTERVAL (
-- Calculate the number of weeks in the number of business days
FLOOR(6/5) * 7
-- If the remaining number of days (MOD) would take us past Saturday then add 2 days to get over the weekend.
+ CASE WHEN MOD(6,5) + DAYOFWEEK(`dt`) >= 7 THEN 2 -
-- This returns either 1 if the date is a Saturday otherwise 0
-- Does the date start on saturday? If so we only need to add 1 (2-1=1) days to get over the weekend instead of 2.
FLOOR(DAYOFWEEK(`dt`)/7) ELSE 0 END
-- Add the remaining number of work days after taking into account full weeks
+ MOD(6,5)) DAY

```

Notes:

This assumes any Monday-Friday is a business day and doesn't handle Holidays or days the business may be closed.