Habe gerade einen Blackout.
Problem:
Wenn Januar oder Februar im Schaltjahr vorliegt,
soll eine Schaltjahreskorrektur vorgenommen werden (1),
andernfalls 0.
Wörtlich übersetzt:
Delphi-Quellcode:
//Logikfehler
{ if (monat=1) or (monat=2) and isleapyear(jahr) then
schaltjahrkorrektur:=1
else schaltjahrkorrektur:=0; }
Funktioniert so nicht.
Mit einer Hilfskrücke k Klappt es (Dirty Code).
Delphi-Quellcode:
if (monat=1) or (monat=2) then k:=1 else k:=0;
if isleapyear(jahr) and (k=1) then
schaltjahrkorrektur:=1
else schaltjahrkorrektur:=0;
Wie "denkt" der Compiler?