Ich habe so etwas für meine ATZ-Uhr gebraucht:


Code:
Lcdat 6 , 1 , "Noch " ; Str(tagerest) ; " Tage     "
Lcdat 7 , 1 , Str(stundenrest) ; "Std. " ; Str(minutenrest) ; "Min. " ; Str(sekundenrest) ; "Sek.   "

'_________________________________________________________________________________________

Function Zeitdiff() As Long                                                     'Errechnet die Zeitdifferenz zwischen zwei Zeitpunkten in Sekunden
   Zeitdiff = 0
   Schalttag1 = 0
   Schalttag2 = 0
   '
   '----- Zaehlen der Sekunden seit Tagesbeginn ------
   Sek1 = Sekunde                                                               'Sekunden
   Sek2 = Sekunde_end
   '
   Temp1a = Minute * 60
   Sek1 = Sek1 + Temp1a                                                         'Minuten
   Temp2a = Minute_end * 60
   Sek2 = Sek2 + Temp2a

   Temp1a = Stunde * 3600
   Sek1 = Sek1 + Temp1a
   Temp2a = Stunde_end * 3600                                                   'Stunden
   Sek2 = Sek2 + Temp2a

   '
   '----- Speichern der Tage vor einem Monat ---------
   Monat12(1) = 0 : Monat12(7) = 181
   Monat12(2) = 31 : Monat12(8) = 212
   Monat12(3) = 59 : Monat12(9) = 243
   Monat12(4) = 90 : Monat12(10) = 273
   Monat12(5) = 120 : Monat12(11) = 304
   Monat12(6) = 151 : Monat12(12) = 334
   '
   '----- Berechnen der ganzen Tage seit Jahresbeginn -----
   Tag1 = Tag - 1
   Monat1 = Monat
   Tag1 = Tag1 + Monat12(monat1)
   '
   Tag2 = Tag_end - 1
   Monat2 = Monat_end
   Tag2 = Tag2 + Monat12(monat2)
   '
   '----- Jahreszahl ermitteln -----
   Jahr1 = Jahr
   Jahr2 = Jahr_end
   '
   '----- Ermitteln ob im aktuelle Jahr ein Schalttag war ---
   If Monat1 > 2 Then
      Temp1a = Jahr1 Mod 4 : Temp2a = Jahr1 Mod 100 : Temp1b = Jahr1 Mod 400
      If Temp1a = 0 And Temp2a <> 0 Then
         Schalttag1 = 1
      Elseif Temp1b = 0 Then                                                    'IF(Jahr1 MOD 4 = 0 AND Jahr1 MOD 100 <> 0) OR Jahr1 MOD 400 = 0 THEN
         Schalttag1 = 1
      End If
   End If
   If Monat2 > 2 Then
      Temp1a = Jahr2 Mod 4 : Temp2a = Jahr2 Mod 100 : Temp1b = Jahr2 Mod 400
      If Temp1a = 0 And Temp2a <> 0 Then                                        'IF(Jahr2 MOD 4 = 0 AND Jahr2 MOD 100 <> 0) OR Jahr2 MOD 400 = 0 THEN
         Schalttag2 = 1
      Elseif Temp1b = 0 Then
         Schalttag2 = 1
      End If
   End If
   '
   '----- Erechnen der Schalttage seit dem Jahre 1 -----
   Jahr1 = Jahr1 - 1
   Jahr2 = Jahr2 - 1
   Temp1a = Jahr1 \ 4 : Temp1b = Jahr1 \ 100 : Temp1c = Jahr1 \ 400
   Schalttag1 = Schalttag1 + Temp1a                                             'Schalttag1 = Schalttag1 +(Jahr1 \ 4) -(Jahr1 \ 100) +(Jahr1 \ 400)
   Schalttag1 = Schalttag1 - Temp1b
   Schalttag1 = Schalttag1 + Temp1c

   Temp2a = Jahr2 \ 4 : Temp2b = Jahr2 \ 100 : Temp2c = Jahr2 \ 400
   Schalttag2 = Schalttag2 + Temp2a                                             'Schalttag2 = Schalttag2 +(Jahr2 \ 4) -(Jahr2 \ 100) +(Jahr2 \ 400)
   Schalttag2 = Schalttag2 - Temp2b
   Schalttag2 = Schalttag2 + Temp2c


   '----- Berechnen der Zeitdifferenz -----
   'ZeitDiff = Sek2 - Sek1 +(Tag2 - Tag1 + Schalttag2 - Schalttag1) * 86400 +(Jahr2 - Jahr1) * 31536000

   Temp1b = Jahr2 - Jahr1
   Temp1b = Temp1b * 31536000

   Temp1a = Tag2 - Tag1
   Temp1a = Temp1a + Schalttag2
   Temp1a = Temp1a - Schalttag1
   Temp1a = Temp1a * 86400

   Temp2c = Sek2 - Sek1

   Zeitdiff = Zeitdiff + Temp1a
   Zeitdiff = Zeitdiff + Temp1b
   Zeitdiff = Zeitdiff + Temp2c

   Tagerest = Secdiff \ 86400

   Stundenrest = Tagerest * 86400                                               'StundenRest = INT(((SecDiff -(TageRest * 86400)) / 3600)
   Stundenrest = Secdiff - Stundenrest
   Stundenrest = Stundenrest \ 3600

   Temp1a = Tagerest * 86400                                                    'MinutenRest = INT(((SecDiff -(TageRest * 86400) -(StundenRest * 3600)) / 60)
   Temp1b = Stundenrest * 3600
   Minutenrest = Secdiff - Temp1a
   Minutenrest = Minutenrest - Temp1b
   Minutenrest = Minutenrest \ 60

   Temp1c = Minutenrest * 60                                                    'SekundenRest = SecDiff -(TageRest * 86400) -(StundenRest * 3600) -(MinutenRest * 60)
   Sekundenrest = Secdiff - Temp1a
   Sekundenrest = Sekundenrest - Temp1b
   Sekundenrest = Sekundenrest - Temp1c

End Function
Quelle> http://www.antonis.de/faq/progs/tagdiff.bas