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.