Einzelnen Beitrag anzeigen

TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.889 Beiträge
 
Delphi 12 Athens
 
#20

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 17:55
Ich würde die Prüfung vom Jahr über den Monat zum Tag herunter abarbeiten.
Und dem Nutzer nach Möglichkeit auch gleich verraten, was an seinem Wert falsch ist.
Beispiel:
Delphi-Quellcode:
program ueb03;

{$APPTYPE CONSOLE}
{$R+,Q+ X-}

uses
  SysUtils;

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

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

  if (Jahr >= 1) and (Jahr <= 3000)then begin
    writeln ('Jahr OK');
    if (Monat >= 1) and (Monat <= 12) then begin
      writeln ('Monat OK');
      case Monat of
        1,3,5,7,8,10,12: begin
          MaxTage := 31;
        end;
        2: begin
          if (
              (Jahr mod 4 = 0) and
              (Jahr mod 100 <> 0)
             ) or
             (Jahr mod 400 = 0) then begin
               MaxTage := 29;
          end
          else
          begin
            MaxTage := 28;
          end;
        end;
        else begin
          MaxTage := 30;
        end;
      end;
      if (Tag >=1) and (Tag <= MaxTage) then begin
        writeln ('Tag OK');
        // an dieser Stelle kann man dann noch solche Dinge wie Osterprüfung etc. einbauen und den User informieren
      end
      else begin
        writeln ('Tag ungültig: Wert muss zwischen 1 und '
                   + IntToStr(MaxTage) + ' liegen!');
      end;
    end
    else begin
      writeln('Monat ungültig: Wert muss zwischen 1 und 12 liegen!');
    end;
  end
  else begin
    writeln('Jahr ungültig: Wert muss zwischen 1 und 3000 liegen');
  end;
  writeln ('Bitte ENTER drücken');
  readln;

end.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat