That's slightly trickier, you need some sort of database or lookup table that contains all the holidays. In the bank I am working at, we use the infinity system, which provides a table in the database with holidays.
Update: I see somebody has already mentioned the Calendar and Calendar profile modules. Never mind then.