Schaltjahr berechnen in Dev-Pascal?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich kenn mich mit Pascal nicht aus, aber hier mal zusammengefasst die Regeln, wann ein Jahr ein Schaltjahr ist.

  1. Die bekannteste Regel. Jedes Jahr, was durch 4 teilbar ist, ist ein Schaltjahr
  2. Außer das Jahr ist durch 100 teilbar, dann ist es kein Schaltjahr
  3. Außer es ist gleichzeitig auch durch 400 teilbar, dann ist es ein Schaltjahr.

Der Code ist also ungefähr so:

if eingabe < 1601 or eingabe > 2099 then
begin
  ShowMessage('Dazu lässt sich keine Aussage treffen.');
end
else
begin
  if eingabe mod 4 = 0 then
  begin
    if eingabe mod 100 = 0 then
    begin
      if eingabe mod 400 = 0 then
      begin
        ShowMessage('Dies ist ein Schaltjahr!');
      end
      else
      begin
        ShowMessage('Dies ist kein Schaltjahr!');
      end
    end
    else
    begin
      ShowMessage('Dies ist ein Schaltjahr!');
    end
  end
  else
  begin
    ShowMessage('Dies ist kein Schaltjahr!');
  end
end

Wie gesagt: Da ich mich mit Pascal nicht auskenne, musst du die auftretenden Fehler selbst korrigieren.

Wenn du die Programmiersprache nicht kannst,
kann man sie dir hier nicht beibringen.

Der Algorithmus ist doch sehr einfach:

1601 <= Jahr <= 2099? Nein --> Keine Aussage

Jahr durch 4 teilbar? Nein -> Kein Schaltjahr

Jahr durch 100 teilbar, aber nicht durch 400? Ja -> Kein Schaltjahr

--> Schaltjahr

Ganz einfach:

alle 4 Jahre ist ein Schaltjahr → Jahr mod 4 = 0

alle 100 Jahre kein Schaltjahr → Jahr mod 100 <> 0

alle 400 Jahre ein Schaltjahr → Jahr mod 400 = 0

alle 3333 Jahre ein Schaltjahr → Jahr mod 3333 = 0

IstSchaltjahr := ((Jahr mod 4 = 0) and (Jahr mod 100 <> 0)) or (Jahr mod 400 = 0) or (Jahr mod 3333 = 0);

Aber ich bin jetzt kein Delphi-Programmierer.

Den Rahmen der Jahreszahlen kannst Du ja hoffentlich selbst vordefinieren.


MarkusGenervt  23.10.2018, 12:51

PS: Das mit den 3333er-Jahren kennt kaum jemand, kann also eigentlich weg fallen.

0