Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#32

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 23:46
a, b, c, d, e, f: integer;
Und was bedeuten diese Variablen-Namen??? Gewöhne es dir bitte ab das so zu schreiben, die Mitglieder hier würden es dir danken!

Da es anscheinend auch noch nicht gestattet ist eigene Methoden zu entwerfen, hier als Fließtext Programm:
Delphi-Quellcode:
program Project33;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
  iJahr, iMonat, iTag, iVollmond, iVollmonde, iSonntag, iMetonischerZyklus, iJahrhundert, iSchaltjahre, iMondPhase: Integer;
begin
  try
    Write('Jahr zur Berechnung des Ostersonntags eingeben: ');
    Readln(iJahr);
    iMetonischerZyklus := (iJahr mod 19) + 1;
    iJahrhundert := (iJahr div 100) + 1;
    iSchaltjahre := (3 * iJahrhundert) div 4 - 12;
    iMondPhase := (8 * iJahrhundert + 5) div 25 - 5;
    iSonntag := (5 * iJahr) div 4 - iSchaltjahre - 10; // überlaufschutz
    iVollmonde := (11 * iMetonischerZyklus + 20 + iMondPhase - iSchaltjahre) mod 30;
    if iVollmonde < 0 then
      iVollmonde := iVollmonde + 30;
    if ((iVollmonde = 25) and (iMetonischerZyklus > 11)) or (iVollmonde = 24) then
      iVollmonde := iVollmonde + 1;
    iVollmond := 44 - iVollmonde;
    if iVollmond < 21 then
      iVollmond := iVollmond + 30;
    iVollmond := iVollmond + 7 - ((iSonntag + iVollmond) mod 7);
    if iVollmond > 31 then
    begin
      iMonat := 4;
      iTag := iVollmond - 31;
    end
    else
    begin
      iMonat := 3;
      iTag := iVollmond;
    end;
    Writeln('Ostersonntag war/ist am ' + IntToStr(iTag) + '.' + IntToStr(iMonat) + '.' + IntToStr(iJahr));
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;
end.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat