# Schaltjahr kontrolle



## Ohner08 (1. November 2004)

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>


----------



## Ohner08 (1. November 2004)

könnte mir jemand helfen wo der fehler sein könnte


----------



## con-f-use (1. November 2004)

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.


----------



## Tobias Menzel (1. November 2004)

Hi,

auf die Schnelle:
	
	
	



```
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ß


----------



## Ohner08 (1. November 2004)

was bedeutet alert(oben in der funktion)


----------



## con-f-use (1. November 2004)

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:

```
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... Jetzt zufrieden? ;-]
 Außerden wollte er doch das mit alert nicht begriffen - nix Perfektionist...


----------



## Tobias Menzel (1. November 2004)

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ß
.


----------



## Sven Mintel (2. November 2004)

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:

```
<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>
```


----------

