Guardar Fecha en la EEPROM

hola, yo tengo un dispositivo que utiliza un modulo adicional (reloj tiempo real), aun esta en pruebas pero lo diseñe para que guarde 30 fechas diferentes:

void EEPROM_write  (void)						        
 {											
    uint16_t year;							        
    uint8_t month;
    char    day;
    uint8_t hour;
    uint8_t minu; 
    uint8_t sec;
    uint16_t Address;								
    EEPROM.get(451, Address);

    if (Address == 450)
    	{
    		Address=0;
    	}

   	DateTime now = rtc.now();						    
    
    year  = now.year();
    month = now.month();
    day   = daysOfTheWeek[now.dayOfTheWeek()];
    hour  = now.hour();
    minu  = now.minute();
    sec   =	now.second();

    EEPROM.put( Address    , year );
    EEPROM.put( Address + 3, month);
    EEPROM.put( Address + 5, day  );
    EEPROM.put( Address + 7, hour );
    EEPROM.put( Address + 9, minu );
    EEPROM.put( Address + 11, sec );
    EEPROM.put( Address + 13, contador_a );
    EEPROM.put( Address + 16, contador_b );
    EEPROM.put( Address + 19, contador_c );
    EEPROM.put( Address + 22, contador_d );

    Address = Address + 25;
    EEPROM.put( 451, Address);
}

un problema con el que me he encontrado es el valor inicial de Address, pues si te fijas una de las primeras cosas que hace la funcion es cargar el valor de Address de la memoria eeprom, si se carga el programa en el arduino y se ejecuta el codigo por primera vez que valor tendra Address cuando se aceda a esta funcion, cabe anotar que esa posicion de la eeprom solo es modificada por esta funcion (posicion 451, y la funcion EEPROM_WRITE)