Proyecto incubadora huevos gallina

Hola a todos,

Tengo buenas y malas noticias:

Me ha llegado el reloj DS1307 en cuestión de 4 días desde china, madre mia, la mala noticia que me ha costado dios y ayuda comunicarme con él, me daba fallo al compilarlo porque las librerías de wire.h no son compatibles con Arduino 1.0 y si bajo de versión no me comunica el la placa con el PC. Así que al final encontré un código que si lograba comunicarse con el reloj. Que es el siguiente:

//Arduino 1.0+ Only
//Arduino 1.0+ Only

#include "Wire.h"
#define DS1307_ADDRESS 0x68

void setup(){
  Wire.begin();
  Serial.begin(9600);
}

void loop(){
  printDate();
  delay(1000);
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

void printDate(){

  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);

  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  //print the date EG   3/1/11 23:59:59
  Serial.print(month);
  Serial.print("/");
  Serial.print(monthDay);
  Serial.print("/");
  Serial.print(year);
  Serial.print(" ");
  Serial.print(hour);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.println(second);

}

Ahora mi siguiente problema es que tengo poca idea de programar y mas o menos puedo aprender por analogías pero no se si debo hacerlo así.

Entonces que mejor manera es comentaros cada linea que es lo que hace y si lo digo mal pues me lo decís.