Indium has provided a very smart and great widget for you,
you can check it out here,
You can have a look at this module also, while you are added,
Hope it helps!
You can get the day of the week by formatDateTime([%CurrentDateTime%], 'E'). It returns a value like “Mon, Tue” (or in the native language depending on the system's settings).
For national holidays, you will need a list of national holidays or an API that can tell (It better is to use the API to populate the national holiday entity, from a cost perspective). retrieve a list of NationalHolidays.
In the Microflow, for each Day in your Request perform a find in that NationalHolidayList, if found + 0 if not evaluate the day in the week, if not Sat/Sun +8 hours (assuming an 8 hours workday)
Go Make IT
(Don’t forget to accept the answer if it helped you)