Schaltuhr fehlerhafte Berechnung der Schaltzeit beim Übergang Mitternacht

Ich würde die Stunden in Minuten umrechnen, dann kannst Du einfach Integer-Arithmetik verwenden:

int zeit = stunden * 60 + minuten;
int ladezeit = lstunden * 60 + lminuten;
int anfangszeit = zeit - ladezeit;
uint8_t tage = anfangszeit / 1440;
anfangszeit %= 1440; // macht den Tagesübergang
uint8_t astunden = anfangszeit / 60;
uint8_t aminuten = anfangszeit % 60;