home
Der Recherchekompass
  [ home | anleitungen | recherchen | hilfe | sitemap | index | suchen ] 
home » recherchen » calendarium » algorithmen » kalenderwoche 6.5 Die Osterfeiertage »

  Unser Kalender:
6.4 Die Bestimmung der Kalenderwoche

  Prinzipiell könnte man die zugehörige Kalenderwoche zu einem Datum berechnen, indem man ermittelt um welchen Tag des Jahres es sich handelt und diesen dann durch sieben teilt. Eine Kalenderwoche beginnt aber laut der DIN 1355 - Zeit immer Montags, so dass hierzu zunächst bestimmt werden muss, wann die erste Woche des Jahres beginnt.


 function Kalenderwoche(tag,monat,jahr) {
   var Woche      = 0;
   var Wchtag1Jan = CurrentDoomDay(jahr);
   var Tage       = Tag_des_Jahres(tag,monat,jahr)-1;

   if (Wchtag1Jan > 3)
      Tage = Tage - (7 - Wchtag1Jan);
   else Tage = Tage + Wchtag1Jan;

   if (Tage < 0)
      if (   (Wchtag1Jan == 4)
          || (CurrentDoomDay(jahr-1) == 3))
         Woche = 53;
      else Woche = 52;
   else Woche = Math.floor(Tage/7) + 1;

   if ((Tage > 360) && (Woche > 52)) {
      if (Wchtag1Jan == 3)
          Woche = 53;
      else if (CurrentDoomDay(jahr+1) == 4)
              Woche = 53;
           else Woche = 1;
   }

   return Woche;
 } 

Dieser Algorithmus berechnet zunächst den Jahrestag des Datums, und dann wird die Tagesanzahl so korrigiert, dass beginnend vom ersten Montag des Jahres gerechnet wird. Dies funktioniert gut für 51 Wochen des Jahres, Probleme bereiten die ersten und die letzten Tage des Jahres. Sofern eine negative Tageszahl ermittelt wurde, liegen die ersten Tage eines Jahres in der letzten Woche des Vorjahres. Dabei muss berücksichtigt werden, dass ein Jahr eine 53. Woche hat, wenn es mit einem Donnerstag beginnt oder endet. Genauso muss für die letzten Tages des Jahres bestimmt werden, ob sie in der letzten Woche des aktuellen Jahres liegt, oder aber bereits in der ersten Woche des Folgejahres.

 

 

6.5 Die Osterfeiertage »

[Seitenanfang] geändert: 23.04.2003 by hgm © 1999, Hans-G. Mekelburg, all rights reserved.
[ impressum | haftungsausschluss ]