holiday table
NUMERIC ID
DATE HOLIDAY_DATE
VARCHAR COUNTRY
I get the feeling that's not enough for you, but you need specify your question.
Replay to the first comment to this solution
The algorithm:
List schoolDays = empty list
Loop over each date in your date range
if(IsSchoolDay)
Add current date to schoolDays
return schoolDays
IsSchoolDay is defined as
IsSchoolDay (Date date)
is date a saturday or sunday
return false
is date in the holiday table
return false
return true