.... the neverending story :banghead:
Nachdem ich neulich bei einer Nachtfahrt einen Fehler entdeckt habe, habe ich letzte Nacht meinen GPS-Tacho mal gefilmt und gesehen, daß die Sommerzeitum(ab?)schaltung zwar funktionierte, aber zur falschen Uhrzeit. Also habe ich noch ein wenig nachgedacht und zwei kleine Fehler gefunden. Ich habe bisher im März letztes Woende um 02:00 Uhr auf 03:00 Uhr die Sommerzeit aktiviert und im Oktober letztes Woende um 03:00 Uhr auf 02:00 Uhr die Sommerzeit deaktiviert. Soweit so gut, aber meine Funktionen haben mit der Längengrad korrigierten UTC gearbeitet und ich habe so getan, also ob es "unsere" Zeit ist. Die Umstellung erfolgt (wenn man es von der Längengrad korrigierten UTC aus betrachtet) immer um 01:00 Uhr.
Hier also die hoffentlich fehlerfreie Sommerzeiterkennung:
Code
Function STime(CalcH:Integer):Boolean; // Sommerzeit ?
Var ST : Boolean; // CalcH=Längengrad korrigierte UTC !
Begin // Umschaltung immer um 01:00 UTC
If (((MonthNum=3) and (DayNum=StartST) and (CalcH>0)) or // >0 -> 01:00 UTC !
((MonthNum=3) and (DayNum>StartST)) or // -> 02:00 CET
((MonthNum=10) and (DayNum=EndST) and (CalcH<2)) or // <2 -> 01:00 UTC !
((MonthNum=10) and (DayNum<EndST)) or // -> 03:00 CEST
(MonthNum in [4..9]))
then
ST:=true; // Sommerzeit
else
ST:=false; // keine Sommerzeit
EndIf;
Return(ST);
End STime;
Gruss
Harry