TimeDatePicker <edit>auf auktuelle Zeit einstellen</edit>



  • Hallo zusammen,

    ich habe bei mir den TimeDatePicker eingebaut und versuche ihn nun upzudaten.
    Allerdings zeigt mir dieser immer die gleiche Uhrzeit an.
    Mir wäre es aber lieber, dass er sich bei jedem Programmstart auf die aktuelle Systemzeit stellt.
    Finde leider keine dazu passende Funktion bzw die richtige Einstellung nicht.
    Wäre super wenn mir da jemand helfen könnte.

    Danke und Gruß
    Keili

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!



  • Hallo,

    Wie wärs mit CurrentTime()



  • Now()



  • Bloß das Now() Date und Time zurückliefert wärend CurrentTime nur die Zeit gibt.



  • das ist hier eigentlich egal, man kann ja auch Time() nehmen



  • Braunstein schrieb:

    Bloß das Now() Date und Time zurückliefert wärend CurrentTime nur die Zeit gibt.

    Man kann nur Now() nehmen.
    Time() setzt dann nur die aktuelle Zeit, während das Datum dann 30.12.1899 ist.



  • Keine Ahnung was du meinst. Bei mir funktioniert

    dtp1->Time = TDateTime::CurrentTime();
    

    problemlos. TDateTimePicker::Kind ist auf dtkTime
    Now() geht allerdings auch.



  • Also bei mir funktioniert das nicht.
    Und bei dir wohl auch kaum. 😉
    Es wird ein TDateTime vom TDateTimePicker erwartet, daher sollte man es ihm auch geben.
    Mit Time() oder CurrentTime gibst du ihm zwar die aktuelle Zeit. Das Datum, welches du dann nicht mitgegeben hast setzt er dann aber zurück.
    Üble Sache, wenn man dann den TDateTimePicker::Kind auf dtkDate zurücksetzt, um auch ein Datum auszuwählen. 😉



  • Ok danke,
    bei mir funktioniert beides.

    Danke euch



  • bei mir funktioniert beides.

    Oh mann..... 😡 😮
    Es kann nicht beides funktionieren.
    Für die Zeit funktioniert das mit Time(),CurrentTime(), aber das Datum wird dadurch verändert.
    🙄



  • Was funktioniert denn nicht? Wenn man natürlich nur Datum oder Zeit anfordert... Geht aber auch beides gleichzeitig:

    TDateTime dtTest = TDateTime::CurrentDateTime();
    ShowMessage(dtTest.DateString());
    ShowMessage(dtTest.TimeString());
    ShowMessage(dtTest.DateTimeString());
    


  • @timer
    Es wurde danach gefragt die aktuelle Zeit zu setzen und nicht das Datum. Da funktioniert auch CurrentTime welches ja ein TDateTime-Objekt liefert. Das Datum war für mich hier irrelevant. Wenn ich Datum und Zeit setzen will nehme ich halt Now oder CurrentDateTime.
    Abgesehen davon würde ich innerhalb einer Applikation bei einem TDateTimePicker auch nie den Kind ändern. Das wäre für den Nutzer doch etwas verwirrend. Wenn man beides brauch kann man ja zwei einsetzen.



  • Abgesehen davon würde ich innerhalb einer Applikation bei einem TDateTimePicker auch nie den Kind ändern. Das wäre für den Nutzer doch etwas verwirrend. Wenn man beides brauch kann man ja zwei einsetzen.

    Ich würde das schon machen, bzw habe das auch schon. 😉
    Wozu zwei ?
    Brauchst doch nur den Benutzer "umschalten" lassen.
    Absolut nicht verwirrend.



  • @Joe M.

    Dann sieh dir mal das Datum an.



  • Ich hab das bei mir jetzt mal getestet mit dem Umschalten und CurrentTime().
    Bei mir wird beim Setzen der Zeit mit
    dtp1->Time = TDateTime::CurrentTime(); das Datum nicht verändert. Es bleibt also auf dem vorher eingestellten Wert (BCB6 Compilierung 2195 SP4).



  • Wie gesagt bei mir tut nun was ich haben will.
    Das Datum ist bei mir Irrelevant, da ich dafür einen bzw zwei neue DateTimePicker habe.

    Nun stehe ich aber vor einem anderen Problem, das ich einfach mal hier dazu poste.

    Ich versuche anhand von 2 auf Datum eingestellte DTP herauszubekommen wie viele Tage zwischen den 2 eingestellten Daten sind. Mein Problem sind die Monatssprünge, also ob ab dem 30 bzw 31 ein neuer Monat beginnt...



  • DaysBetween liefert dir die Zahl der Tage zwischen zwei TDateTime-Werten



  • Irgendwie versteh ich das nicht so ganz...

    ____________________________________________________
    String datenow,datethen;
    int dif= 0;
    datenow= DateTimePicker2->Date;
    datenow= datenow.SubString(0,10);

    datethen = DateTimePicker3->Date;
    datethen= datethen.SubString(0,10);
    DaysBetween(datenow,datethen),dif;

    ShowMessage(datenow);
    ShowMessage(datethen);
    ShowMessage(dif);

    ______

    Ich bekomme also meine 2 Daten durch 2 verschiedene DateTimePicker die ich auslese und in einen String schreibe. Die 2 Daten werden mir auch korrekt ausgegeben, jedoch rechnet er mir keine Differenz aus ... verstehe nicht so ganz welchen Syntax die DaysBetween erfordert *fg*



  • schonmal mit der BCB-Hilfe zu DaysBetween versucht?



  • Ja, aber die bringt mich nicht weiter 😞


Anmelden zum Antworten