Einzelnen Beitrag anzeigen

OliviaH

Registriert seit: 4. Okt 2017
3 Beiträge
 
#15

AW: Was haut bei dieser Wochentagsberechnung nicht hin?

  Alt 27. Okt 2018, 18:38
Hallo,
die Wochentagsberechnung haben wir mit einer Formel von Zeller gemacht.
Ein kleines Beispiel gibt es unter https://mathematikalpha.de/informatik-klasse11 , dort bei Klasse 9 das Beispiel 2.
Ich habe mal kopiiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Tag,Monat,Jahr,W,C,Y: Integer;
(*
Zellersche Formel
Verfahren zur Ermittlung des Wochentages nach Christian Zeller (1882):
T … Tag, M … Monat, J … Jahr, W … Wochentag,
Sa = 0; So = 1, …, Fr = 6,
C … vergangene Jahrhunderte, Y … Jahresnummer im laufenden Jahrhundert, [ ] … ganzzahlige Division
Januar und Februar werden altrömisch als 13. und 14. Monat des Vorjahres gezählt.
Gregorianischer Kalender
   W = (T+[13·(M+1)/5] +Y +[Y/4] +[C/4] -2C) mod 7
Julianischer Kalender
   W = (T + [13·(M+1)/5] + Y + [Y/4] + 5 - C) mod 7
*)

begin
  tag:=strtoint(edit1.text);
  monat:=strtoint(edit2.text);
  jahr:=strtoint(edit3.text);
  if monat<3 then begin
    monat:=monat+12;
    jahr:=jahr-1;
  end;
  y:=jahr mod 100;
  c:=jahr div 100;

  w:=(Tag+ (13*(Monat+1)) div 5 + Y + y div 4 + c div 4 -2*C) mod 7;
  while w<0 do w:=w+7;

  if w=0 then edit4.text:='Sonnabend';
  if w=1 then edit4.text:='Sonntag';
  if w=2 then edit4.text:='Montag';
  if w=3 then edit4.text:='Dienstag';
  if w=4 then edit4.text:='Mittwoch';
  if w=5 then edit4.text:='Donnerstag';
  if w=6 then edit4.text:='Freitag';
end;
Liebe Grüße Olivia
  Mit Zitat antworten Zitat