brauchbar.de - WebDesign, Programmierung,Development in HTML, CSS, Javascript, PHP, Perl und mehr

[ Startseite | Artikel : HTML · JavaScript · CSS · Perl · Usability · Sonstiges | Services | Über ]


verwandte Artikel und Seiten

Schaltjahr - Quartal - Jahreszeit

von Thomas Salvador.

Schaltjahr

Zwar kann die Tag des Jahres Routine benutzt werden, um zu entscheiden, ob das Datum in einem Schaltjahr liegt oder nicht, sinnvoller ist es hier jedoch, dies direkt zu machen:

function isLeapYear(y) {
  return ((y % 4 == 0) && ((y % 100!= 0) || (y % 400 == 0)));
}

In dieser Form brauchen wir Tag des Jahres und damit die Julian Operation nicht (und die Ausführung dieses Fragmentes ist auch schneller):

Ein Jahr y ist also ein Schaltjahr, wenn die Jahreszahl durch 4, nicht aber durch 100 ohne Rest teilbar ist. Ist die Jahreszahl durch 400 ohne Rest teilbar, so ist es ein Schalt jahr, obwohl eine durch 400 teilbare Zahl insbesondere durch 100 teilbar ist.

Wie Sie wissen, dient der Schalttag 29. Februar dazu, Abweichungen des Kalenders von der tatsächlichen Jahreslänge auszugleichen. Die beiden zusätzlichen Bedingungen sind notwendig, weil "Schalttag jedes 4. Jahr" noch immer viel zu ungenau wäre.

Beispiel:

<script type="text/javascript">
<!--
  var now = new Date();
  document.write('1996 ist leap? ', isLeapYear(1996), '<br>');
  document.write('1997 ist leap? ', isLeapYear(1997), '<br>');
  document.write('1900 ist leap? ', isLeapYear(1900), '<br>');
  document.write('2000 ist leap? ', isLeapYear(2000), '<br>');
  document.write('Derzeit sind wir in einem Schaltjahr? ');
  document.write(isLeapYear(t4(now.getYear())));
// -->
</script>

liefert

Ausgabe auf Ihrem Browser

Quartal

Das Quartal lässt sich freilich allein aus dem Monat bestimmen, denn die Methode getMonth()

liefert:

function getQuarter(t) {
  return Math.floor(t.getMonth() / 3)+1;
}

Die Routine getQuarter() liefert entsprechend Werte im Bereich von 1 bis 4.

Beispiel:

<script type="text/javascript">
<!--
  var now = new Date();
  document.write(now.toString(), ' liegt im ',
                 getQuarter(now), '. Quartal');
  // -->
  </script>

liefert

Ausgabe auf Ihrem Browser

Jahreszeit

Zur Bestimmung der Jahreszeit brauchen wir noch den genauen Tag und Monat, den getDate() und getMonth() liefern. Auch diese Implementierung ist naheliegend:

function getPeriod(t) {
  var m = t.getMonth()+1;
  var d = t.getDate();
  if ((m < 3) || ( (m == 3) && (d < 20) ) ||
                  ((m == 12) && ( d > 20)))
    return 0;
  else
    if ((m < 6) || ( (m == 6) && (d < 21)))
      return 1;
    else
      if ((m < 9) || ((m == 9) && (d < 23)))
        return 2;
      else
        return 3;
}

Die Routine getPeriod() liefert Werte von 0 für Winter bis 3 für Herbst.

Die naheliegende Verwendung ist natürlichsprachlich. Dazu schaffen wir ein Feld mit den Namen des Jahreszeiten:

var perNames = new Array('Winter', 'Frühling', 'Sommer', 'Herbst');

Die Verwendung erfolgt analog zur "deutschen" Darstellung:

Beispiel:

<script type="text/javascript"><!--

  var now = new Date();
      var perNames = new Array('Winter', 'Fr&uuml;hling',
                             'Sommer', 'Herbst');

  document.write(now.toString(), ' liegt im ',
  perNames[getPeriod(now)]);
// -->
</script>

liefert

Ausgabe auf Ihrem Browser

Der Grund dafür, dass getPeriod() nicht direkt den Namen liefert, ist einfach der, dass man ja nicht unbedingt (nur) den Namen darstellen will. So würde beispielsweise

<script type="text/javascript">
<!--
  var now = new Date();
  document.write('<img src="p',getPeriod(now),'.gif">');
// -->
</script>

dazu führen, dass je nach Jahreszeit die Bilder p0.gif bis p3.gif angezeigt werden. Man hat so viel mehr Freiheit und kann mit den Ergebnissen machen, was man möchte.


Verwandte Artikel und Seiten



brauchbar web
Diese Site anlinken. Artikel zu CSS | HTML | JavaScript | Perl | Usability | Sonst. | nach Ausgabe.

Copyright © 1999-2015 Thomas Salvador und brauchbar.de . Alle Rechte vorbehalten. Gehostet bei all-inkl.
Reproduktion, ganz oder in Teilen, nur mit schriftlicher Zustimmung von Thomas Salvador. Impressum · Datenschutzerklärung · Kontakt.

zum Inhaltsverzeichnis der 10. Ausgabe.

Linken Sie bitte zu der festen Adresse http://www.brauchbar.de/wd/artikel/48.html .