Ya lo he solucionado...
void setup() {
Wire.begin();
Serial.begin(57600);
zero=0x00;
int direccion = 0;
long Vesihayfecha = EEPROM.read(direccion);
getDateDs1307();
if (Vesihayfecha < 12)
{
getDateDs1307();
EEPROM.write(direccion, year);
direccion = direccion + 1;
EEPROM.write(direccion, month);
direccion = direccion + 1;
EEPROM.write(direccion, dayOfMonth);
direccion = 0;
}
}
Es el valor que daba la eeprom a la variable que lo recogía... no puede ser = a 0, he puesto que fuera menor que 12 y funciona.
Un saludo