Route to specific ring group depending on incoming DID after time condition

Running FreePBX 2.11, Asterisk 11 on CentOS 6.4 (PIAF Green).

I have 3 DIDs coming into the system that I want to route to a specific ring groups based on DID number after they have met time conditions.

Specifically, if it is not a holiday, it is during business hours, if the call has come in on “Line1” I want it to route to “RingGroup1”, if it comes in on “Line2” I want it to route to “RingGroup2” and if it comes in on “Line3” I want it to route to “RingGroup3”.

The only way I can see to do this correctly is set up 3 different time groups for holidays, 3 different for business hours as well as 3 different time conditions for holidays and business hours and then route to the applicable ring group.

This is not an impossible task, I was just wondering if anybody could suggest a more elegant or efficient way to accomplish what I am trying to do.