Sequential watering

The code you have calculates StartPumpDay once, before you ever read the clock. Every time you read the clock you have to calculate it again.

I have a feeling that you think that the calc is happening automatically behind the scenes. It isn't.