Forum: Programmieren allgemein
by khh,
13. Jul 2015
Zwischenschritt weglassen ändert nix :-(
Ist schon eigenartig
beim richtigen Ergebnis von 10 std. steht in begin 42209.125 und in ende 42209.541666666664
beim Fehler mit 11 stunden steht in begin 42173.166666666664 und in ende 42173.625
Warum sind denn die Nachkommawerte so unterschiedlich lang?
In der Datenbank stehen "lesbar" bei beiden Beispielen volle Stunden
24.07.2015 03:00:00...
Forum: Programmieren allgemein
by khh,
13. Jul 2015
ich löse das nun anders.
ich ziehe Arbeitsbeginn von Arbeitsende ab und nehme den Wert mit DecodeTime ausseinander,
das klappt.
Dann muss ich halt eventuell anfallende Tage wieder zu den Stunden dazu zählen, aber was solls.
Ich danke euch
Forum: Programmieren allgemein
by khh,
13. Jul 2015
alsooo, egal wie ichs mache,
larbeitsbeginn:= ZQuery.FieldByName('arbeitsbeginn').AsDateTime;
larbeitsende:= ZQuery.FieldByName('arbeitsende').AsDateTime;
lDateTime2 := RoundTo(larbeitsbeginn,-10);
lDateTime3 := RoundTo(larbeitsende,-10);
lsekunden := SecondsBetween(lDateTime2,lDateTime3) ;
Forum: Programmieren allgemein
by khh,
13. Jul 2015
funktioniert leider trotzdem nicht.
Wenn ich den Wert asDateTime (aus der Datenbank im Timestamp-Feld) übergebe, bekomme ich genau auch diese Differenz bei 10 Stunden.
11 und 9 stimmen :-(
Moment, ich sehe gerade du rundest VOR Minutesbetween :-(
macht trotzdem nix aus :-(
Forum: Programmieren allgemein
by khh,
13. Jul 2015
windows 7 prof
lazarus 1.4RC2
FPC 264
REV 48058
PS: bei 11 oder 9 std. stimmen die Werte
Forum: Programmieren allgemein
by khh,
13. Jul 2015
Hallo zusammen, kann jemand von euch nachvollziehen, warum bei obigen Funktionen zwischen:
24.07.2015 03:00:00 und 24.07.2015 13:00:00
35999 sekunden bzw.
599 Minuten zurückgegeben werden ?
Ich danke euch