datum rechnen...

Für Fragen von Einsteigern und Programmieranfängern...

datum rechnen...

Beitragvon reiter » 5. Dez 2017, 19:53 datum rechnen...

hallo...
soweit funktioniert alles... das problem was ich habe:

ich möchte im ersten feld ein editierbares datum was ich ändern kann und sich die restlichen felder drauf rechnen
momentan zeigt er mir nur das aktuelle datum , ist aber nicht editierbar und feld2,3,4 rechnet halt auf das aktuelle die sollen aber auf das editierbare rechnen also z.b. 1.8.17

kann mir da jemand helfen?
wei muss ich datum1 deklarieren das das funktioniert

gruss

procedure TForm1.Button1Click(Sender: TObject);

var
Datum1: TDateTime;
Datum2: TDateTime;
Datum3: TDateTime;
Datum4: TDateTime;
Tage: Integer;

begin

Datum2 := Datum1 + 20; // Tage dazuaddieren
Datum3 := Datum1 + 40;
Datum4 := Datum1 + 60;

edit1.Text := FormatDateTime('dd.mm.yyyy', Datum1);
edit2.Text := FormatDateTime('dd.mm.yyyy', Datum2);
edit3.Text := FormatDateTime('dd.mm.yyyy', Datum3);
edit4.Text := FormatDateTime('dd.mm.yyyy', Datum4);

end;
Zuletzt geändert von reiter am 5. Dez 2017, 23:55, insgesamt 1-mal geändert.
reiter
 
Beiträge: 29
Registriert: 18. Nov 2017, 16:58

Beitragvon Mathias » 5. Dez 2017, 20:35 Re: datum rechnen...

Ich verstehe deine Frage nicht richtig, kommt ein falsches Datum oder werden deine Edit nicht aktualisiert ?

Dieser Code zeigt bei mir das Datum korrekt an.
Code: Alles auswählen
  Datum1 := Date;
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy', Datum1));
  Datum2 := Datum1 + 20;
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy', Datum2));
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3262
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon reiter » 5. Dez 2017, 20:38 Re: datum rechnen...

doch das funktioniert alles...

nur soll date1 editierbar sein... also das ich irgendein datum eintragen kann , momentan zeigt er mir immer nur das aktuelle datum
datum2,3,4 funktioniert
reiter
 
Beiträge: 29
Registriert: 18. Nov 2017, 16:58

Beitragvon Mathias » 5. Dez 2017, 21:53 Re: datum rechnen...

Meinst du so was ?
Oder sollte bei jedem Tastendruck im Edit eine Abfrage kommen ?
Code: Alles auswählen
var
  t: TDateTime;
begin
  t := StrToDate(Edit1.Text);
end;

So nebenbei verwendet man normalerweise bei eine Edit 'Text', anstelle con 'Caption'.
Zuletzt geändert von Mathias am 5. Dez 2017, 21:54, insgesamt 1-mal geändert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3262
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Epcop » 5. Dez 2017, 21:53 Re: datum rechnen...

Kann das sein, dass du den CalenderDialog suchst?

Code: Alles auswählen
 
if calendardialog1.Execute then begin
     label.Caption:=datetostr(calendardialog1.Date); \\ bzw datum1 = calenderdialog1.date
end;
 
Epcop
 
Beiträge: 67
Registriert: 29. Mai 2012, 08:36

Beitragvon Epcop » 5. Dez 2017, 22:03 Re: datum rechnen...

Mathias hat geschrieben:Meinst du so was ?
Oder sollte bei jedem Tastendruck im Edit eine Abfrage kommen ?
Code: Alles auswählen
var
  t: TDateTime;
begin
  t := StrToDate(Edit1.Text);
end;



Bei der Variante muss man vorher genau das Datum prüfen. Weil es gibt Tausend Möglichkeiten ein Datum zu schreiben ;-)
Epcop
 
Beiträge: 67
Registriert: 29. Mai 2012, 08:36

Beitragvon reiter » 5. Dez 2017, 23:53 Re: datum rechnen...

ja, das mit dem edit.text habe ich selbst gemerkt...
und label.caption

hatte ich vertauscht
habe es jetzt aber hinbekommen... mit

sieht jetzt so aus

und es funktioniert wie ich es will

var
Datum1: TDateTime;
Datum2: TDateTime;
Datum3: TDateTime;
Datum4: TDateTime;
Tage: Integer;

begin

Tage := 60; // 60 Tage vorwärts

DateSeparator := '.'; // datum muss eingetragen werden


Datum1 := StrToDateTime(Edit1.Text);

Datum2 := Datum1 + 20;
Datum3 := Datum1 + 40;
Datum4 := Datum1 + 60;

edit1.Text := FormatDateTime('dd.mm.yyyy', Datum1);
edit2.Text := FormatDateTime('dd.mm.yyyy', Datum2);
edit3.Text := FormatDateTime('dd.mm.yyyy', Datum3);
edit4.Text := FormatDateTime('dd.mm.yyyy', Datum4);

end;
reiter
 
Beiträge: 29
Registriert: 18. Nov 2017, 16:58

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried