Autor Beitrag
V!P3R
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 18.10.08 12:28 
Hallo

ausblenden Delphi-Quelltext
1:
2:
3:
var c: String;
c:=IntToStr(Round(StrToDate(FormatDateTime('dd.mm',StrToDate(Edit1.Text))) - StrToDate(FormatDateTime('dd.mm',Now)))) ;
// So rechne ich das datum (Beispiel: 09.04.1993) - Das Datum von heute 18.10.2008 und bekomme die anzahl der tage ÜBER EIN JAHR


Jez möchte ich aber
1. Das ALter in Jahren haben
Mein Versuch:
ausblenden Delphi-Quelltext
1:
2:
3:
var c: String;
c:=IntToStr(Round(StrToDate(FormatDateTime('yyyy',Now)) - StrToDate(FormatDateTime('yyyy',StrToDate(Edit1.Text))))) ;
// Aber geht nicht, weil : '2008' ist kein gültiges Datum

Wie kann ich das rechnen. Wichtig: ich habe nur zwei Daten in folgender Form:18.10.2008 und 09.04.1993

MfG
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 18.10.08 12:39 
Okay ich glaube ich habe die Lösung gefunden:

ausblenden Delphi-Quelltext
1:
2:
var a:String;
a:= IntToStr(StrToInt(FormatDateTime('yyyy',Now))-(StrToInt(FormatDateTime('yyyy',StrToDate(Edit1.Text)))));
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 18.10.08 13:07 
Warum klammerst du dich so verzweifelt an Daten, wenn du doch nur zwei Jahre (= Ganzzahlen :idea:) vergleichen willst?

ausblenden Delphi-Quelltext
1:
Age := YearOf(Now) - StrToInt(Edit1.Text);					

Edit: Year zu YearOf korrigiert


Zuletzt bearbeitet von Yogu am Sa 18.10.08 14:22, insgesamt 2-mal bearbeitet
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 18.10.08 13:24 
weil in Edit1 doch '09.04.1993' steht und nich '1993'

außerdem funktioniert es doch so einwandfrei.

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 18.10.08 13:49 
Die Lösung ist aber durch das FormatDateTime relativ langsam, viel einfacher und schneller dürfte das sein:
ausblenden Delphi-Quelltext
1:
2:
  lblOutput.Caption := 'Unterschied: '
    + IntToStr(YearOf(Now) - YearOf(StrToDate(edtDate.Text))) + ' Jahre';
Wobei schneller sein dürfte das Jahr selbst aus dem String zu holen, aber dann ist es nicht ganz mehr so kurz.