Michael N.: Datumeingabe auf Gültigkeit prüfen

Beitrag lesen

Hallo Peter,

ich möchte auch mal nicht nur Fragen stellen. Deswegen der folgende Script der hoffentlich für einige nützlich ist.

Ich haette noch einige Tips zu Deinem Script:

function IstSchaltjahr( nJahr ) {

»»  if (( nJahr % 100 != 0 ) &&

( nJahr % 4 == 0 )
  ( nJahr % 400 == 0 )) {
   return true;
  }

»»  return false;

}

Hier koenntest Du die Uebersichtlichkeit etwas verbessern, indem Du schreibst:
  if ((( nJahr % 100 != 0 ) &&
                  ( nJahr % 4 == 0 ))
                 ( nJahr % 400 == 0 )) {
Die zusaetzlichen Klammern erleichtern einfach das Lesen.

function DatumGueltigEx( nTag, nMonat, nJahr ) {

»»  var ok;
»»  ok=false;
»»  
»»  switch( nMonat ) {

case 1:

Stattdessen wuerde ich schreiben:
      case 1, 3, 5, 7, 8, 10, 12:

ok= TestDatum( nTag, 31 );
   break;
  case 2:
   if( IstSchaltjahr( nJahr ) ) {
    ok= TestDatum( nTag, 29 )
   } else {
    ok= TestDatum( nTag, 28 )
   }
   break;
  
  case 4:

Und hier dann:
       case 4, 6, 9, 11:

ok= TestDatum( nTag, 30 );
   break;

»»  }
»»  
»»  return ok;

}

Dadurch verkuerzt sich das ganze Script doch etwas. Dann noch eine kleine, aber boese Falle: Wenn Du mit historischen Daten arbeiten willst gibt es im Jahr 1592 im gregorianischen Kalender eine kleine Luecke von elf Tagen, die garnicht existieren. Diese Tage fielen als Korrekturtage zur Kalendersynchronisation aus. damals hatte man naemlich die Situation, das der Lauf der Erde um die Sonne (unser Kalenderbezugspunkt) und der Jahreszeitenlauf nicht mehr synchron waren mit dem bis dahin geltenden julianischen Kalender. In einigen Laendern (z.B.: Russland) ist diese Umstellung in diesem Jahrhundert erst vollzogen worden, weswegen die russische "Oktoberrevolution" nach unserem Kalender schon im November stattfand, eine Sache, die im Geschichtsunterricht auch schonmal zu Verwirrungen gefuehrt hat.

Schoene Gruesse aus Koeln

Michael N.