I have a similar requirement in the application I manage. There I have the added complexity that work hours are not necessarily the same for all employees (part-timers, weekend duty, ...), weekends don't fall on the same days in all countries (eg. Middle East), holidays are not the same in all countries, etc ...
Just wanted to mention this, in case you overlooked.