No for loops needed. Let loop() fun freely
Instead of the absolute time of day use the number of minutes since midnight
08:00 is 480
12:00 is 720
15:00 is 900
23:00 is 1380
When the minutes value is between 480 and 720 map() the difference to a rising PWM value
When the minute value is between 720 and 900 turn the PWM fully on
When the minutes value is between 900 and 1380 map() the difference to a falling PWM value