Code time inaccuracy

This is part of the problem:

if ((millis() - oldTime) > 1000)   /// Zobrazení a uložení dat na SD kartu každou vteřinu
  { 
    oldTime = millis();

This will get you out of sync with the real time. If last time you checked (millis() - oldTime) was 998, then next time you check it will be maybe 1050. The next successful check will be at 2051 (in real time) at least, but most probably it will be at about 2080. Then the next match is at 3100 etc. Sooner or later one full real time second will be skipped. I hope you understand what I mean :slight_smile:
Change to:

if ((millis() - oldTime) > 1000)   /// Zobrazení a uložení dat na SD kartu každou vteřinu
  { 
    oldTime += 1000;