adding or subtracting an hour, rtc stuff

jokefox:

int i = 0; // you will need to make a loop later

Where's your loop?
As things stand, the code for the circulation pump only sees the first time in the pumpOnTime array (because i is always 0). You will need to make it loop through all of the times in that array.

    if  (now.hour() == hrOff && now.minute())

I think you left out something important in that line.