some other observations
- all of your tables should have a pk field
- Date is a reserved word and should not be used for objects. So is Weekday IIRC.
- ID is an ambiguous name for a field, especially when you're going to end up referencing more than one at the same time at some point
- you don't need holiday field in data if you can join these tables on the date field
Personally I would advise to abandon this idea. I believe there is a limit of how many fields you can transpose, and it seems quite likely that with enough dates you will hit that limit. Besides, if what I wanted is a spreadsheet, then I'd pull/pull the data into Excel and use that instead. I would not try to make a spreadsheet out of a database - much like trying to make a dog out of a cat I'd say. They're both animals, but that's the end of the similarity.
EDIT - forgot to mention that you don't need to recreate weekday values when you have a date. The WeekdayName function would give you that out of your date rather than repeating pieces of your values.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.