AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IncMinute über 00:00 Uhr ??

Ein Thema von goose33 · begonnen am 12. Jun 2005 · letzter Beitrag vom 12. Jun 2005
Antwort Antwort
goose33

Registriert seit: 26. Okt 2004
Ort: Merseburg
49 Beiträge
 
#1

IncMinute über 00:00 Uhr ??

  Alt 12. Jun 2005, 03:38
Hallo, kleines Problem mit IncMinute :

Also ich hab eine Zeit , z.B. 00:10 Uhr.
Jetzt möchte ich 30 minuten zurück, also
hab ich folgendes gemacht :

Delphi-Quellcode:
var
   bookDate : TTime;
   myHH, myMM, mySec, myMilli : Word;
begin
  bookDate := StrToDateTime('00:10');
  bookDate := IncMinute(bookDate, -30);
  DecodeTime(bookDate, myHH, myMM, mySec, myMilli);
end;
Komischerweise kommt da 00:20 raus ???

Also myHH = 0 und myMM = 20 ... wie das denn ?
Kommt IncMinute nicht damit klar das das über 00 Uhr geht ?

Matthias
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: IncMinute über 00:00 Uhr ??

  Alt 12. Jun 2005, 08:18
Hallo Matthias,

Incminute arbeitet schon richtig, du hast danach -20 min in deinem TTime stehen.

Allerdings schnippelt decodetime das Vorzeichen offensichtlich weg, und gibt dir (+) 20 min. aus.

Lösung:

Delphi-Quellcode:
var
   bookDate : TTime;
   myHH, myMM, mySec, myMilli : Word;
begin
  bookDate := StrToDateTime('00:10') + 2;
  bookDate := IncMinute(bookDate, -30);
  DecodeTime(bookDate, myHH, myMM, mySec, myMilli);

  showmessage (inttostr(myHH) + 'Std' + #13#10 + inttostr (myMM) + 'min' + #13#10 + inttostr (mySec) + 'sek' + #13#10 + inttostr (myMilli) + 'ms' + #13#10);
end;
Wenn du vorher ein, zwei Tage (egal) addierst, kommst du nicht in den negativen Bereich
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: IncMinute über 00:00 Uhr ??

  Alt 12. Jun 2005, 08:22
Zitat von jfheins:
Allerdings schnippelt decodetime das Vorzeichen offensichtlich weg, und gibt dir (+) 20 min. aus.
Irgendwie logisch oder? Oder war es bei dir schon 00:-20?
  Mit Zitat antworten Zitat
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz