Autor Beitrag
Jakane
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 09.06.11 10:05 
Guten Morgen lieber Delphi-Helfer :)

ich möchte prüfen ob ein Datum existiert oder nicht.
mein grober Filter weiss zwar das es keinen 32.April geben kann, aber wenn ich den soweit ausbaue das er auch weiss das es keinen 31. April gibt, wird er relativ gross... wenn dann noch Schaltjahre mit rein sollen...

Kenn da jemand einen einfacheren Weg? :)


Moderiert von user profile iconNarses: Topic aus Dateizugriff verschoben am Fr 10.06.2011 um 00:30
MaxWurzel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 77
Erhaltene Danke: 10



BeitragVerfasst: Do 09.06.11 10:11 
Guckt dir mal die Funktion
ausblenden Delphi-Quelltext
1:
IsValidDate					

in der Unit DateUtils an.
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 09.06.11 10:28 
Datei nicht gefunden :( hab keine DateUtils.dcu
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 09.06.11 10:39 
Dann musst du eine sehr sehr alte Delphiversion haben. Da wäre es schon sinnvoll, wenn du das in dein Profil schreibst, damit man das bei Antworten gleich weiß... da ist so viel dazugekommen, was du dann alles nicht hast...
Welche Version hast du denn?

Bliebe noch der Versuch es in einen Datumswert umzuwandeln und wenn es nicht geht, ist es keins.
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 09.06.11 15:50 
Ich habe Delphi 5 :(
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 09.06.11 16:15 
Bin jetzt nicht ganz sicher, aber gab es früher nicht bei den Jedi-Komponenten eine entsprechende Unit?
Ich meine, dass die JvDateUtils hieß. Also Jedi installieren und weiterarbeiten :wink:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 09.06.11 16:41 
Wobei die neuen JVCL/JCL Versionen nicht mehr mit Delphi 5 funktionieren, der Support wurde mit JVCL Version 3.37 eingestellt. Du müsstest dir also diese alte Version holen, damit es geht.
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Fr 10.06.11 09:40 
An dem PC an dem ich arbeite darf ich nichts installieren :(

Wie prüf ich ich über StrToDate() ohne das ich eine Fehlermeldung bekomme?


Zuletzt bearbeitet von Jakane am Fr 10.06.11 13:15, insgesamt 1-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 10.06.11 09:44 
Ich habe mal bei Tante Suche bei Google GÜLTIGES DATUM DELPHI eingegeben.
Da stößt man mal wieder ganz schnell auf die Schweizer.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 10.06.11 11:57 
Soweit waren wir schonmal ;)

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Bliebe noch der Versuch es in einen Datumswert umzuwandeln und wenn es nicht geht, ist es keins.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 10.06.11 12:56 
Oh man, dann schreibt es doch selbst. Ist nun wirklich nicht kompliziert.
Pseucode:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Funktion IstGueltigesDatum(Datum) : Boolean;
Datum in Tag, Monat und Jahr aufteilen

falls 31er-Monat und Tag zwischen 1 und 31, dann Rückgabe = True
sonst
  falls 30er Monat und Tag zwischen 1 und 30, dann Rückgabe = True
  sonst
    falls Monat = 2 und Tag zwischen 1 und 28, dann Rückgabe = True
    sonst
      Falls Monat = 2 und Tag = 29 und Schaltjahr, dann Rückgabe = True
      sonst
        Rückgabe = False

Für das Schaltjahr natürlich noch eine kleine Funktion schreiben.

Kann man auch sehr hübsch als Case-Struktur programmieren.
SpaghettiCodix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52
Erhaltene Danke: 1

WIN XP
Delphi 2 Standart und Delphi 2005 Pers.
BeitragVerfasst: Mi 06.07.11 13:09 
user profile iconJakane hat folgendes geschrieben Zum zitierten Posting springen:
ich möchte prüfen ob ein Datum existiert oder nicht.

vielleicht hilft Dir das hier weiter:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function IstString_einDatum(const S: string): Boolean;
begin 
  Result := True; 
  try 
    StrToDate(S); 
  except 
    Result := False; 
  end
end;

Wenn hier der String kein datum ist,gibt die Function ein False zurück.
ausblenden Delphi-Quelltext
1:
2:
3:
If IstString_einDatum('32.01.2011'then Label1.caption:='es ist ein Datum'
else
Label1.caption:='es ist KEIN Datum';


Moderiert von user profile iconNarses: Quote- durch Delphi-Tags ersetzt, Zitat gekürzt.