Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Wochentag bestimmen mt Zellers Kongruenz (https://www.delphipraxis.net/166061-wochentag-bestimmen-mt-zellers-kongruenz.html)

Wolfgang Mix 27. Jan 2012 15:47


Wochentag bestimmen mt Zellers Kongruenz
 
Delphis DayOfWeek und DayOfTheWeek liefern ab 1.1.0001 bis 4.10.1582 den Wochentag im Julianischen
Kalender, ab 15.10.1582 bis 31.12.9999 den Wochentag des Gregorianischen Kalenders. Alternativ und
plattformunabhängig lassen sich die Wochentage beider Kalender nach folgenden Algorithmen von
Christian Zeller bestimmen.
Zu beachten ist, dass Januar und Februar als 13. und 14. Monat des Vorjahres zu betrachten sind.

Delphi-Quellcode:
//Zellersche Wochentagsformel für den Julianischen Kalender
//anwendbar für den Scaliger-Zeitraum 1.1.4713 v. Chr. bis
//22.1.3268   0 = Sa 1 = So usw.
//Wolfgang Mix - Delphi-PRAXiS
function dowjul(d,m,y:integer):integer;
var k,j:integer;
Begin
  if m in[1,2] then
  begin
    y:=y-1;
    m:=m+12;
  end;

  k:= y mod 100;// Die letzten beiden Ziffern der Jahreszahl
  j:= y div 100;// Die ersten beiden Ziffern der Jahreszahl

  result:=(d+((m+1)*26 div 10 +k+(k div 4)+5-j)) mod 7;
end;
Delphi-Quellcode:
//Zellersche Wochentagsformel für den Gregorianischen Kalender
//  0 = Sa 1 = So usw.
//Wolfgang Mix - Delphi-PRAXiS
function dowgregor(d,m,y:integer):integer;
var k,j:integer;
Begin
  if m in[1,2] then
  begin
    y:=y-1;
    m:=m+12;
  end;

  k:= y mod 100;// Die letzten beiden Ziffern der Jahreszahl
  j:= y div 100;//Die ersten beiden Ziffern der Jahreszahl


  result:=(d+((m+1)*26 div 10 +k+(k div 4)+ j div 4-2*j)) mod 7;
end;
Im gregorianischen Kalender lassen sich nach Vereinfachung mit Monatsmerkzahlen die Wochentage
auch einfach durch Kopfrechnung bestimmen. Besonders empfehlenwert dazu:

Dr. Dr. Mittrich - Rechnen mit dem Weltmeister S. 153 ff.
ISBN 9783-596-18989-2


Weitere Erläuterungen z.B. hier:
http://de.wikipedia.org/wiki/Zellers_Kongruenz

Wolfgang Mix 4. Feb 2012 11:13

AW: Wochentag bestimmen mt Zellers Kongruenz
 
Sorry, der Autor heißt natürlich Mittring:

Dr. Dr. Gert Mittring - Rechnen mit dem Weltmeister S. 153 ff.
ISBN 9783-596-18989-2


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz