AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Erstellen eines Datum-überprüfers

Ein Thema von Mo53 · begonnen am 16. Mai 2021 · letzter Beitrag vom 17. Mai 2021
Antwort Antwort
TBx
(Administrator)

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

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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#2

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 18:11
Zitat:
if (Monat >= 1) and (Monat <= 12) then begin
Warum nicht als ELSE im Case?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TBx
(Administrator)

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

AW: Erstellen eines Datum-überprüfers

  Alt 16. Mai 2021, 18:54
Zitat:
if (Monat >= 1) and (Monat <= 12) then begin
Warum nicht als ELSE im Case?
Hätte man machen können, dann hätte man halt die bestehende Else in ein case für 4,6,9,11 umwandeln müssen.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz