MinuteSpan
-
Hallo,
ich arbeite noch nicht sehr lange mit c++ und dem Borland Builder und
der gra. Oberfläche.
Habe nun ein Projekt angefangen, welches ein 'Start' und ein 'Stop'
Button hat. Bei klick auf Start liest es die aktuelle Uhrzeit 'time()'
und schreibt es in eine ListBox. Dasselbe passiert auch bei klick auf Stop.
Nun habe ich noch eine dritte ListBox. In diese soll die Zeitdifferenz von Start
und Stop eingetragen werden.
Hier ist nun mein Problem. Wenn ich Stop drücke, soll die dritte ListBox den Eintrag erhalten. Habe das mit MinuteSpan versucht, aber der Compiler sagt mir ständig, dass MinuteSpan eine undef. Funktion ist.ich arbeite nun mit dem Builder seit 3 Tagen,
also bitte nicht lachen
Schonmal Danke
gruß
smiLLe
-
-
habe nun die Links von dir durchgearbeitet.
Komme aber nicht wirklich weiter.
MinutesBetween gibt mir keine Sekunden an, was ich aber brauche,
deshalb MinuteSpan.Mhm bin etwas verwirrt

entweder MinuteSpan wird nicht erkannt ... selber fehler wie im ersten Post,
oder es kommt "kein Element von ListBox".Viell. kannst mir noch ein wenig helfen?
Danke
-
da fehlt wohl noch die Include-Datei DateUtils
-
Hi,
das hat leider auch nicht funktioniert.
frage:
Wenn ich eine TDateTimePicker erstelle und will dort
das aktuelle Datum bei programmstart stehen haben,
wie sollte ich dann da vorgehen?Wenn es keine großen Umstände macht, kannst du mir viell.
den Code zeigen?mir geht es gerade irgendwie so >
<Danke

-
Hallo
In Konstruktor des Forms
DateTimePicker->DateTime = Date();bis bald
akari
-
Hi,
dann müsste das mit dem MinuteSpan so gehen? :
TDateTime -> DateTime = MinuteSpan(x,y);falls ja, bekomm ich dennoch den Fehler:
"Aufruf der undef. Funktion 'MinuteSpan'"
danke
-
was passiert wenn du MinuteSpan markierst und F1 drückst?
-
hab ich schon geschaut:
folgendes:*Die Funktion MinuteSpan gibt die Anzahl der Minuten (einschließlich der Minutenbruchteile) zurück, die zwischen den beiden angegebenen TDateTime-Werten verstrichen sind.
Unit
DateUtils
Kategorie
Datum/Zeit
extern PACKAGE double __fastcall MinuteSpan(const System::TDateTime ANow, const System::TDateTime AThen);*
-
ok, na schonmal etwas
steht in deinem Quelltext irgendwo
#include <DateUtils.hpp>?
-
Hi,
ja, nun steht es drin

Hat nun auch schonmal "etwas" funktioniert...
ich kopier dir nun einfach mal das rein, was ich machen will.
Wie gesagt, ich habe einen Start und Stop button und zwei ListBoxen, in
welche die jeweilige Zeit reingeschrieben wird.
Wenn ich nun Stop drücke soll nicht nur die Zeit in die Listbox übertragen werden,
sondern auch die Zeit aus "Start-Listbox" ausgelesen und per MinuteSpan die Differenz der beiden Zeiten in eine neue (dritte) ListBox geschrieben werden.void __fastcall TBasis::Stop_ButtonClick(TObject *Sender) { TDateTime DateTime = Time(); AnsiString str = TimeToStr(DateTime); char* ch = new char[str.Length()+1]; strcpy(ch, str.c_str()); Stop_Liste -> AddItem(ch, Stop_Liste); // Schreibt es in die Stop_Liste delete [] ch; int l1=0; int l2=0; AnsiString las1; AnsiString las2; l1 = Start_Liste->Items->Count; l2 = Stop_Liste->Items->Count; las1 = Start_Liste->Items->Strings[l1-1]; las2 = Stop_Liste->Items->Strings[l2-1]; TDateTime -> DateTime = StrToTime(las1); TDateTime -> DateTime = StrToTime(las2); /*Hier komme ich nicht weiter -> wie kopiere ich die Differenz in ListBox3 */ TDateTime -> DateTime = MinuteSpan(las1, las2); ListBox3 -> AddItem(????, ListBox3);so sieht es bei mir aus... ok nun bitte nicht so laut lachen

bin halt noch ein Neuling
-
warum so umständlich?
Stop_Liste->Items->Add(TimeToStr(Time())); ... ListBox3 -> Items->Add(FloatToStr(MinuteSpan(las1, las2)));MinuteSpan liefert übrigends KEIN DateTime zurück
-
Hey,
hab es vorhin noch getestet.
da kommen werte raus, die ich nich versteh ..
z.b. 3 Sekunden = 0,374657346753 oder so
und bei 5 Sekunden = 0,6234234 ....
da stimmt doch was nicht
kannst mir sagen , warum bei ListBox3 dieser FloatToStr
nötig ist?Kann ich diesen Wert nicht in ein DateTime zurückgeben lassen?
gruß
-
ich zitiere dich mal selbst:
smiLLe schrieb:
hab ich schon geschaut:
folgendes:*Die Funktion MinuteSpan gibt die Anzahl der Minuten (einschließlich der Minutenbruchteile) zurück, die zwischen den beiden angegebenen TDateTime-Werten verstrichen sind.
Unit
DateUtils
Kategorie
Datum/Zeit
extern PACKAGE double __fastcall MinuteSpan(const System::TDateTime ANow, const System::TDateTime AThen);*
fällt dir was auf?
wenn du die Sekunden willst, nimm SecondsSpan oder SecondBetween
wenn du allerdings die Zeit zwischen zwei Werten im Zeitformat anzeigen willst, brauchst du nur folgendes tun:
ListBox3->Items->Add(TimeToStr(StrToTime(las1) - StrToTime(las2)));
-
Morgen,
danke

genau das was ich haben wollte !
bin eig. davon ausgegeangen, dass MinuteSpan die Werte als DateTime ausgibt.Aber las1-las2 is natürlich noch viel besser

also,
vielen Dank !