0

Uhrzeiten, Zeitdauer

Ich habe zwei Felder vom Typ Uhrzeit. Wenn ich die befülle mit einem Button mit der Funktion Anfang := time() und später Ende := time() und mir per Berechnugnsfeld die Dauer dazwischen ausrechnen lassen möchte kommt z.B. bei einer Minute Abstand  0:00:32.722 oder ähnliches heraus. Fülle ich die Uhrzeitfelder manuell steht dort, wie gewünscht 0:01. Ich tippe deshalb, es liegt am time() Befehl. Was mache ich falsch?

5 Antworten

null
    • FLYER AG
    • Simon_Lanz
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich denke, weil das Sekunden sind. Stoppe mal genau eine Minute zwischen beiden Einträgen und schaue dann nochmals... 

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja, die leidige Zeitberechnung ... Die Anzeige ist im Prinzip wahrscheinlich korrekt (32 Sekunden und 722 Tausendstel). Man könnte sie mit format() entsprechend aufbereiten, allerdings bekommt man dann eine Stunde mehr (vermutlich wg. Sommerzeit). Pragmatischer Vorschlag: Statt des Berechnungsfeldes ein Datenfeld vom Typ Zeitdauer nehmen und dessen Zahlenformat auf "61:16" einstellen. Die Berechnung und Zuweisung dann mit dem Schaltflächen-Code vornehmen (Dauer := Ende - Anfang).

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Dirk,

    das sind sogar Millisekunden die mit time() übergeben werden. Mit :

    ---

    Anfang := time(number(format(now(), "HH")), number(format(now(), "mm")))

    Ende := time(number(format(now(), "HH")), number(format(now(), "mm")))

    ---

    Sollten die Felder auf Minuten abgerundete Werte bekommen

     

    Leo

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Und wieder zu spät

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nee, nicht zu spät. Ist ja eine Alternative, wenn man es unbedingt mit einem Funktionsfeld machen will.