Autor Beitrag
otelo
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Di 21.09.04 11:09 
Hi,
ich möchte über ein Form eine Startzeit und eine Endzeit eingeben. Beide Werte sollen dann in die Unixzeit konvertiert werden und kommen danach in eine DB (was hierbei aber erstmal egal ist).

Ich habe dafür jeweils ein DateTimePicker und zwei Edit-Felder (Eingabefelder für die Stunden und Minuten) genommen.

So sieht die ButtonClick-Routine aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm15.Button2Click(Sender: TObject);
var
  time1,time2,date1,date2,test: TDateTime;
  uxt1,uxt2,diff: integer;
begin
 time1 := StrToTime(Edit1.Text + ':' + Edit2.Text + ':00');
 date1 := DateTimePicker1.Date;
 uxt1  := DateTimeToUnix(date1 + time1) - 36851;

 time2 := StrToTime(Edit3.Text + ':' + Edit4.Text + ':00');
 date2 := DateTimePicker2.Date;
 uxt2  := DateTimeToUnix(date2 + time2) - 36851;

 diff := uxt2 - uxt1 -7;
 test := UnixToDateTime(uxt1);

 ShowMessage(IntToStr(diff) + '-' + IntToStr(uxt1) + '-' + DateTimeToStr(test));
end;


Nun habe ich zwei Probleme, die ich nicht verstehe:
a) Wenn ich die Differenz zwischen unixzeit1 und 2 berechne und bei beiden Werten das gleiche (z.B. 01.01.2004 12:00) eingegeben habe, ist die Differenz nicht 0 sondern 7. Wie kann das sein?

b) Wenn ich das Datuma 01.09.2004 00:00 eingebe, es in Unixzeit umrechnen lasse und dann wieder zurück in DateTime kommt ein Versatz von genau 10h,14min und 11sec raus. Deswegen auch die 36851 oben im Quellcode.
Ist das normal oder mache ich einen Denkfehler?

Kann jemand weiterhelfen?
Danke und Gruß
otelo
otelo Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Di 21.09.04 12:00 
ok, ich habe den fehler gefunden. Ein Kollege hat mir geholfen...

Die 10h 14min und 11 sec kamen von einem voreingetragenem Time-Wert bei den DateTimepickern. Die 7h Offset ebenfalls. Ich dachte, dass er die Timewerte bei DateTimePicker1.Date gar nicht anzieht...

Manchmal sieht man den Wald vor lauter Bäumen nicht.

Gruß
otelo