In a shopping cart where a user can select their preferred ship date, how would you alert them when a date is a holiday or weekend? Would you use processing to not allow it? Add an alert that it would arrive the next business day? Have a notification prior to selecting the date?
I would show a calendar picker with non-selectable days grayed out. When the user hovers over the non-selectable day, I would display a tool tip explaining why that date isn't selectable.
For instance, here's an example of blackout dates from MSDN:
(Sidenote: Are you sure there's a reason for having the user select their shipping date? In most e-commerce type applications that I've seen, the users almost invariably want their shipments as soon as possible.)
It makes sense to show the dates as a calendar, as it can be fairly self-explanatory means of indicating weekends and holidays up front, without too much extra messaging.
I've shown an example from an online grocery site in the UK called Ocado. When picking dates there's a help icon above the calendar pops open a legend to explain the shading on dates. This might work for you.
Six colours seem a lot of different options just to chose a date. We (it is a calendar where users can chose a date for a service) use simple traffic light logic. Green bookable, red booked (additionally crossing out might be necessary for the colour blind) and grey not possible to book (weekends and so on). Hoover on selection. We just had a round of user tests on some other issues and the calendar and didn't see any necessity to explain the colours.