Öhm doch, das passt so. Schaltjahre sind Jahre, die durch 4, aber nicht durch 100 teilbar sind. Außer sie sind auch durch 400 teilbar.
Das wäre:
Was exakt Miveys Code entspricht.
Edit: dein Code ist schon deshalb unlogisch, weil alles, was durch 400 teilbar ist, auch garantiert durch 100 und 4 teilbar ist. Demnach würde sich deine erste Zeile (durch das && und das ||) auf if(jahr % 100 == 0) verkürzen. Nicht so ganz korrekt. Von den Syntaxfehlern mal abgesehen. Ist ja nur Pseudocode.
Edit: dein Code ist schon deshalb unlogisch, weil alles, was durch 400 teilbar ist, auch garantiert durch 100 und 4 teilbar ist. Demnach würde sich deine erste Zeile (durch das && und das ||) auf if(jahr % 100 == 0) verkürzen. Nicht so ganz korrekt. Von den Syntaxfehlern mal abgesehen. Ist ja nur Pseudocode.
...
ah, sorry. So meinte ich es auch, hab aber die Negation vergessen ^^"
edit: Bei Miveys Algorithmus würde ich ist noch vorher einen Wert zuweisen, da es hier zu Problemen würden kann. Bsp:
Jahr = 7
Jahr % 4 = 3 -> ist bleibt unverändert
Jahr % 100 = 7 -> ist bleibt unverändert
Jahr % 400 = 7 -> ist bleibt unverändert
ist wird also nie gesetzt und im Speicher steht dann irgendwas.
Oder setzt C/C++ automatisch den Wert, für eine Variabel, auf 0?