Hi,
ich möchte in meinem Programm Stunden, Minuten und Sekunden eingeben,
und das Programm soll mir dann sagen, was für ein Datum und welche
Uhrzeit dann ist.
Bei mir klappt das bisher nur soweit, bis die Tage "volllaufen" (31 glaub
ich). Aber wie finde ich herraus, ob der aktuelle Monat 28,29,30 oder 31
Tage hat
Hier nun mal meinen momentanen Code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Caption := DateToStr(Now) + ' ' + TimeToStr(Now);
Timer1.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
day : word; // Tage
std : word; // Stunden
min : word; // Minuten
sek : word; // Sekunden
akt_year : word; // Jahre
akt_month : word; // Monate
akt_day : word; // stunden
akt_std : word; // aktuelle Stunden
akt_min : word; // aktuelle Minuten
akt_sek : word; // aktuelle Sekunden
akt_mil : word; // Milli-Sekunden
ziel : TDateTime;
begin
Form1.Caption := DateToStr(Now) + ' ' + TimeToStr(Now);
std := SpinEdit1.Value;
min := SpinEdit2.Value;
sek := SpinEdit3.Value;
DecodeDateTime(Now,akt_year,akt_month,akt_day,akt_std,akt_min,akt_sek,akt_mil);
akt_std := akt_std + std;
akt_min := akt_min + min;
akt_sek := akt_sek + sek;
min := akt_sek div 60;
akt_sek := akt_sek-(min*60);
akt_min := akt_min + min;
std := akt_min div 60;
akt_min := akt_min-(std*60);
akt_std := akt_std + std;
day := akt_std div 24;
akt_std := akt_std-(day*24);
akt_day := akt_day + day;
ziel := EncodeDateTime(akt_year,akt_month,akt_day,akt_std,akt_min,akt_sek,akt_mil);
Label1.Caption := DateTimeToStr(Ziel);
end;
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssLeft in Shift) then begin
ReleaseCapture;
SendMessage(Form1.Handle,WM_SYSCOMMAND,SC_MOVE+1,0);
end;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
if SpinEdit1.Text = '' then begin
SpinEdit1.Text := '0';
SpinEdit1.SelectAll;
end;
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
if SpinEdit2.Text = '' then begin
SpinEdit2.Text := '0';
SpinEdit2.SelectAll;
end;
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
if SpinEdit3.Text = '' then begin
SpinEdit3.Text := '0';
SpinEdit3.SelectAll;
end;
end;
Ich wette Ihr wisst das