Help with RTC Clock module!!!

    rtc.begin(DateTime(__DATE__, __TIME__));

So, you start the upload process. The IDE does some stuff, invokes the preprocessor, which defines the string TIME. Then, the compiler is called, and the linker. When the linker is done, it calls avrdude to upload the hex file to the Arduino. The board resets, then the bootloader notices that there is a sketch to be uploaded, so it erases the board, and accepts the new sketch. Then, the Arduino resets, and the new sketch starts running. And, you wonder why that can take 20 seconds?