if (minutes == 0 & seconds == 0)
{
//do nothing
}
Do nothing? I thought you wanted to turn the relay off.
if (digitalRead(MagSwitch) == LOW){ //if magnetic switch is detected
else if (digitalRead(MagSwitch) == HIGH) //if no magnetic switch detected
If the output from digtialRead() isn't HIGH and it isn't LOW, what is it?
No Serial.print() statements outside of setup(). I'm sure that there is a reason for that, but what it could possibly be escapes me.