Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: IncMinute über 00:00 Uhr ??

  Alt 12. Jun 2005, 10:49
Hallo ihr,

das Problem liegt nicht bei IncMinute, sondern bei der Zeit die verwendet wird, oder genauer gesagt der Tag. Mach mal folgendes:
Delphi-Quellcode:
bookDate := StrToDateTime('00:10');
ShowMessage(DateTimeToStr(bookdate));
bookDate := IncMinute(bookDate, -30);
ShowMessage(DateTimeToStr(bookdate));
Das Ergebnis der ShowMessages:
Code:
30.12.1899 00:10:00
30.12.1899 00:20:00
Mache ich hingegen folgendes:
Delphi-Quellcode:
bookDate := StrToDateTime('00:10');
Bookdate := Bookdate+1; //Darauf kommts an
ShowMessage(DateTimeToStr(bookdate));
bookDate := IncMinute(bookDate, -30);
ShowMessage(DateTimeToStr(bookdate));
In der markierten Zeile zaehle ich also einfach einen Tag zum Zeitstempel dazu, und jetzt sieht das Ergebnis so aus:
Code:
31.12.1899 00:10:00
30.12.1899 23:40:00
Das Problem liegt also darin, dass du vom "absoluten Nullpunkt" ausgehst. Du zaehlst also 10 Minuten dazu, dann 30 Minuten weg, und damit kommt Delphi aus irgendwelchen Gruenden nicht klar. Wie du gesehen hast, musst du dir einfach ein Datum reingeben, so dass du diesen Nullpunkt beim zurueckgehen nicht ueberschreitest.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat