Einzelnen Beitrag anzeigen

Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#22

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 17:30
Dankeschön, ich habe es nochmal korrigiert, außer das mit dem ersten If da es ja auch überprüft ob der Tag >= 1 ist, falls eine negative Zahl eingegeben wird, sollte es dann die Fehlermeldung anzeigen.

Hier nochmal die korrigierte Version:
Delphi-Quellcode:
{$APPTYPE CONSOLE}
{$R+,Q+ X-}

uses
  System.SysUtils;

var
  Tag: integer;
  Monat: integer;
  Jahr: integer;

begin

  write('Bitte den Tag eingeben ');
  readln(Tag);
  write('Bitte den Monat eingeben ');
  readln(Monat);
  write('Bitte das Jahr eingeben ');
  readln(Jahr);

  if (Tag >= 1) and (Tag <= 31) then
    if (Monat >= 1) and (Monat <= 12) then
      if (Jahr >= 1) and (Jahr <= 3000) then

        case Monat of
          2:
            begin
              if (Jahr mod 4 = 0) and (Jahr mod 100 <> 0) or (Jahr mod 400 = 0)
              then
              begin
                if (Tag <= 29) then
                begin
                  writeln(Tag, ' ist zulässig.');
                  readln;
                end
                else
                begin
                  writeln(Tag, ' ist unzulässig.');
                  readln;
                end;
              end
              else
              begin
                if (Tag <= 28) then
                  writeln(Tag, ' ist zulässig.')
                else
                  writeln(Tag, ' ist unzulässig.');
              end;
            end;

          1, 3, 5, 7, 8, 10, 12:
            begin
              if (Tag <= 31) then
              begin
                writeln('Der ', Tag, '. ist gültig.');
                readln;
              end
              else
              begin
                writeln('Der ', Tag,'. ist ungültig.');
                readln;
              end;

            end;

          4, 6, 9, 11:
            begin
              if (Tag <= 30) then
              begin
                writeln('Der ', Tag, '. ist gültig.');
                readln;
              end

              else
              begin
                writeln('ungültig');
                readln;
              end;

            end;

        end

      else
      begin
        writeln('Jahr ungültig.');
        readln;
      end

    else
    begin
      writeln('Monat ungültig.');
      readln;
    end

  else
  begin
    writeln('Tag ungültig.');
    readln;
  end;

end.
  Mit Zitat antworten Zitat