Tag der Woche


Die Zeller Kongruenz ist ein Algorithmus, der einen Tag die Woche gegeben berechnet
Jahr, Monat und Tag.

Autor: EARL DUNOVANT

{
EARL DUNOVANT

> Welches Datum ist was für ein Tag für einen bestimmten Monat.

Die Zeller Kongruenz ist ein Algorithmus, der einen Tag die Woche gegeben berechnet
Jahr, Monat und Tag. In 1887(!) erstellt. Jeff Duntemann PC-Techniken
Ruhm implementiert es in TP in der Ausgabe 11/90 Dr. Dobbs Journal, mit einer
(115 min Links), (H) Elp, mehr? Kludge d-Dur, da TPs MOD-Operator einen Rest zurückgibt ein
Wahre mathematische Modulo. Ich fügte das Kludge Alert Banner, mit denen ich in meiner
eigenen Code.
}

Funktion CalcDayOfWeek (Jahr, Monat, Tag: Integer): Integer;
Var
Jahrhundert,
Inhaber: Integer;
beginnen
{Erster test für Fehlerbedingungen Eingabewerte:}
Wenn (Jahr < 0) oder (Monat < 1) oder (Monat > 12) oder (Tag < 1) oder (Tag > 31) dann
CalcDayOfWeek: =-1 {Return-1 zurückgegeben}
sonst
{Die Zeller Kongruenz Berechnung wie Zeller selbst tun}
{beschrieb es in 'Acta Mathematica' #7, Stockhold, 1887.}
beginnen
{Zuerst trennen wir das Jahr und die Jahrhundert-Abbildungen:}
Jahrhundert: = Jahr Div 100;
Jahr: = Jahr MOD 100;
{Wir im Monat anpassen, so dass März Monat #3 bleibt weiter}
{aber das Januar und Februar sind die Monate #13 und #14}
{* sondern das vorherige Jahr *:}
Wenn Monat dann < 3
beginnen
Inc (Monat, 12);
Wenn Jahr > 0 dann
Dec (1 Jahr) {im Jahr vor dem Jahr 2000 ist}
Else {1999, nicht 20-1...}
beginnen
Jahr: = 99;
Dec(Century);
Ende;
Ende;

{Hier ist Zellers wegweisende Schwarzmagie:}
Inhaber: = Tag; {Start mit dem Tag des Monats}
Inhaber: = Halter + (((Month + 1) * 26) Div 10); {Calc die Schrittweite}
Inhaber: = Halter + Jahr; {Add im Jahr}
Inhaber: = Halter + (Jahr Div 4); {Für Schaltjahre korrigieren}
Inhaber: = Halter + (Jahrhundert Div 4); {Korrigieren Sie Jahrhundert Jahre}
Inhaber: = Halter - Jahrhundert - Jahrhundert; {WEIß NICHT, WARUM ER DIES TAT!}
{***********************KLUDGE ALERT!***************************}
Während Halter < 0 keine {Get negative Werte oben in}
Inc (Holder, 7); {positiven Bereich vor}
{unter die MOD...}
Inhaber: = Inhaber MOD 7; {Division durch 7 aber halten die}
{Rest anstatt die}
{Quotienten}
{***********************KLUDGE ALERT!***************************}
{Hier wir 'wickeln' Samstag rund, bis der letzte Tag sein:}
Wenn Inhaber = 0 then
Inhaber: = 7;

{Zeller hielt am Sonntag = 1 Ursprung; Computer Weenies lieber}
{start alles mit 0, so hier ein Jahrhundert Kludge ist:}
Dec(Holder);

CalcDayOfWeek: = Halter; {Return Sie das Endprodukt!}
Ende;
Ende;









Tag der Woche


Tag der Woche : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Die Zeller Kongruenz ist ein Algorithmus, der einen Tag die Woche gegeben berechnet
Jahr, Monat und Tag.

Autor: EARL DUNOVANT

{
EARL DUNOVANT

> Welches Datum ist was für ein Tag für einen bestimmten Monat.

Die Zeller Kongruenz ist ein Algorithmus, der einen Tag die Woche gegeben berechnet
Jahr, Monat und Tag. In 1887(!) erstellt. Jeff Duntemann PC-Techniken
Ruhm implementiert es in TP in der Ausgabe 11/90 Dr. Dobbs Journal, mit einer
(115 min Links), (H) Elp, mehr? Kludge d-Dur, da TPs MOD-Operator einen Rest zurückgibt ein
Wahre mathematische Modulo. Ich fügte das Kludge Alert Banner, mit denen ich in meiner
eigenen Code.
}

Funktion CalcDayOfWeek (Jahr, Monat, Tag: Integer): Integer;
Var
Jahrhundert,
Inhaber: Integer;
beginnen
{Erster test für Fehlerbedingungen Eingabewerte:}
Wenn (Jahr < 0) oder (Monat < 1) oder (Monat > 12) oder (Tag < 1) oder (Tag > 31) dann
CalcDayOfWeek: =-1 {Return-1 zurückgegeben}
sonst
{Die Zeller Kongruenz Berechnung wie Zeller selbst tun}
{beschrieb es in 'Acta Mathematica' #7, Stockhold, 1887.}
beginnen
{Zuerst trennen wir das Jahr und die Jahrhundert-Abbildungen:}
Jahrhundert: = Jahr Div 100;
Jahr: = Jahr MOD 100;
{Wir im Monat anpassen, so dass März Monat #3 bleibt weiter}
{aber das Januar und Februar sind die Monate #13 und #14}
{* sondern das vorherige Jahr *:}
Wenn Monat dann < 3
beginnen
Inc (Monat, 12);
Wenn Jahr > 0 dann
Dec (1 Jahr) {im Jahr vor dem Jahr 2000 ist}
Else {1999, nicht 20-1...}
beginnen
Jahr: = 99;
Dec(Century);
Ende;
Ende;

{Hier ist Zellers wegweisende Schwarzmagie:}
Inhaber: = Tag; {Start mit dem Tag des Monats}
Inhaber: = Halter + (((Month + 1) * 26) Div 10); {Calc die Schrittweite}
Inhaber: = Halter + Jahr; {Add im Jahr}
Inhaber: = Halter + (Jahr Div 4); {Für Schaltjahre korrigieren}
Inhaber: = Halter + (Jahrhundert Div 4); {Korrigieren Sie Jahrhundert Jahre}
Inhaber: = Halter - Jahrhundert - Jahrhundert; {WEIß NICHT, WARUM ER DIES TAT!}
{***********************KLUDGE ALERT!***************************}
Während Halter < 0 keine {Get negative Werte oben in}
Inc (Holder, 7); {positiven Bereich vor}
{unter die MOD...}
Inhaber: = Inhaber MOD 7; {Division durch 7 aber halten die}
{Rest anstatt die}
{Quotienten}
{***********************KLUDGE ALERT!***************************}
{Hier wir 'wickeln' Samstag rund, bis der letzte Tag sein:}
Wenn Inhaber = 0 then
Inhaber: = 7;

{Zeller hielt am Sonntag = 1 Ursprung; Computer Weenies lieber}
{start alles mit 0, so hier ein Jahrhundert Kludge ist:}
Dec(Holder);

CalcDayOfWeek: = Halter; {Return Sie das Endprodukt!}
Ende;
Ende;


Tag der Woche

Tag der Woche : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Tag der Woche
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung