Schaltjahr kontrolle

Ohner08

Grünschnabel
Habe ein Problem will eine Funktion schreiben die mir sagen kann ob ein Jahr ein Schaltjahr ist oder nicht. hier der Quelltext:

<SCRIPT LANGUAGE="Java Script">
function kontrolle()
{
var jahrfeld ausgabefeld;
jahrfeld=document.schaltjahr.jahr.value;
if (jahrfeld%4=0)
{
if (jahrfeld%100=0)
{
if (jahrfeld%400=0)
{
document.schaltjahr.ausgabe.value="Schaltjahr"
}
else
{
document.schaltjahr.ausgabe.value="Kein Schaltjahr"
}
else
{
dcument.schaltjahr.ausgabe.value="Kein Schaltjahr"
}
}
}
else
{
document.schaltjahr.ausgabe.value="KEIn Schaltjahr"
}
}
</SCRIPT>
 
Erst mal musst die variablen die hinter var stehen durch ein Komma trennen.
Dann: "=" ist ein Zuweisungsoperator, wenn du einen Vergleich anstellst [if (jahr%100 ==0)] musst du "==" benutzen. Das wären die Syntaktischen fehler.

Außerdem ist glaube ich noch ein logischer Fehler drin, aber ich hab den Gaus-Allgorithmus für die Schaltjahre nicht mehr im Kopf...
Du kannst außerdem alle Bedingungen zusammenfalssen, indem du sie einfach Addierst, wenn 0 rauskommt sind alle wahr.

Und dann würde ich mich nochmal vergewissen, dass die Eingabefelder auch wirklich richtig sind.
 
Zuletzt bearbeitet:
Hi,

auf die Schnelle:
HTML:
function testen() {
  var jahr = document.schaltjahr.jahr.value;
  if ((jahr % 4 == 0 && jahr % 100 != 0) || jahr % 400 == 0) { // Gleichheitsoperator == statt = verwenden
    alert("Schaltjahr");
  } else {
    alert("kein Schaltjahr");
  }
}

Gruß
 
Zuletzt bearbeitet:
alert("ladia") gibt z.B. ladida als Meldungsfenster (so ähnlich wie ne Fehlermeldung) auf deinem Bildschirm aus. Ist also nicht, was du haben willst.

Probiers mit:
HTML:
 function testen() {
    var jahr = document.schaltjahr.jahr.value;
  
    if (jahr % 4 + jahr % 100 + jahr % 400 == 0) { 
    document.schaltjahr.ausgabe.value="Schaltjahr" }
  else {
    document.schaltjahr.ausgabe.value="Kein Schaltjahr" }
  }

Edited: Hehe, da vertraut man einmal deinen Fähigkeiten und dann sowas...:eek: Jetzt zufrieden? ;-]
Außerden wollte er doch das mit alert nicht begriffen - nix Perfektionist...
 
Zuletzt bearbeitet:
Perfektionist! :-)

Dann würde ich aber auch empfehlen, die (obgleich lokale) Variable nicht wie das Textfeld zu benennen (obwohl das auf meinem Mist gewachsen ist).

Gruß
.
 
Ich befürchte, Herr Eichel wird nicht damit zufrieden sein, dass es ab sofort nur noch alle 400 Jahre ein Schaltjahr gibt ....der nimmt sich glatt nen Strick :-)

So herum dürfte er ruhiger schlafen können:
Code:
<script type="text/javascript">
<!--
function testen() 
{
  jahr = document.schaltjahr.jahr.value;
  document.schaltjahr.ausgabe.value = 
        ( jahr % 4 == 0 && ( jahr % 100 != 0 || jahr % 400 == 0))
            ? 'Schaltjahr'
            : 'kein Schaltjahr';
}
//-->
</script>
 

Neue Beiträge

Zurück