Ich habe so etwas für meine ATZ-Uhr gebraucht:
Quelle> http://www.antonis.de/faq/progs/tagdiff.basCode: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







Zitieren

Lesezeichen