[Gelöst]Duration Type Formatieren

29. Juli 2010 10:24

Hallo,
ich hab folgendes Problem:
Ich habe eine Variable vom Type Duration. Die ausgabe sieht ja bei diesem Feld so aus: 1Stunde 5Minunten 3 Sikunden.
Kann ich irgendwie auf diesem Type einen anderen Formatieren. Zb. Nur die Zeit?
Weil ich brauche aus diesem Type einen Int Wert. Diesen benöntige ich bei den Istmeldund BuchungsBlatt. Undzwar bei der Zeitangabe braucht dieser einen Int wert. Und dann muss beim Einheitencode noch einstellen. Ob das Stunden Tage oder Minuten sind.
Zuletzt geändert von 3ug3n am 29. Juli 2010 17:16, insgesamt 1-mal geändert.

Re: Duration Type Formatieren

29. Juli 2010 10:36

Laut der Hilfe ist eine Duration ein BigInt mit der Angabe in Millisekunden. Daraus sollte sich der Rest doch errechnen lassen?

Re: Duration Type Formatieren

29. Juli 2010 10:44

Ja aber wie formatiere ich das ganze. Er gibt das ja nicht als BigInt Zurück

Re: Duration Type Formatieren

29. Juli 2010 10:52

Du kannst den Duration-Wert in eine BigInt-Variable übertragen, dann hast du automatisch die Anzahl Millisekunden.
Nun kannst du mit diesem BigInt nach Belieben rechnen.

Re: Duration Type Formatieren

29. Juli 2010 10:52

3ug3n hat geschrieben:Hallo,
ich hab folgendes Problem:
Ich habe eine Variable vom Type Duration. Die ausgabe sieht ja bei diesem Feld so aus: 1Stunde 5Minunten 3 Sikunden.
Kann ich irgendwie auf diesem Type einen anderen Formatieren. Zb. Nur die Zeit?
Weil ich brauche aus diesem Type einen Int Wert. Diesen benöntige ich bei den Istmeldund BuchungsBlatt. Undzwar bei der Zeitangabe braucht dieser einen Int wert. Und dann muss beim Einheitencode noch einstellen. Ob das Stunden Tage oder Minuten sind.


Type Duration ist ein 64-bit-integer in ms.
Eine Umrechnung auf auf die Tage, Stunden, Minuten könntest du dann in Abhängigkeit des Einheitencodes in dem Istmeldung-BuchungsBlatts erstellen.

also
Minuten:= Duration / 60000;
Stunden:= Duration / 3600000;
Tage:= Duration / 86400000;

jenachdem wie du Runden möchtest z.B.:
ROUND(Stunden, 1, '>');

mfg,
winfy

Re: Duration Type Formatieren

29. Juli 2010 10:56

Eine Duration nach Stunden oder Minuten zu formatieren, scheint in meinem Nav5 auch nicht zu gehen. Also würde ich ein BigInt der Duration gleichsetzen und dann rechnen lassen.

Re: Duration Type Formatieren

29. Juli 2010 10:57

winfy hat geschrieben:Minuten:= Duration / 60000;
Stunden:= Duration / 3600000;
Tage:= Duration / 86400000;

oder gleich mit DIV teilen.

Re: Duration Type Formatieren

29. Juli 2010 14:59

Jungs Ihre seid die besten^^. Danke

Das mit dem Runden habe ich nicht so ganz verstanden...

Re: Duration Type Formatieren

29. Juli 2010 15:24

Wenn du die Duration 2 Stunden 30 Minuten in Anzahl Stunden umrechnest, dann würdest du ohne Rundung 2,5 erhalten.
Mit einer entsprechenden Rundung (bzw. Verwendung von DIV) erhältst du als Ergebnis 2

Re: Duration Type Formatieren

29. Juli 2010 15:26

3ug3n hat geschrieben:Jungs Ihre seid die besten^^. Danke

Das mit dem Runden habe ich nicht so ganz verstanden...


Da Duration in Millisekunden angegeben wird und Du aber evtl. Tage oder Stunden verwenden möchtest wäre die Berechnung
Code:
Tage:= Duration / 86400000;

oder
Code:
Stunden:= Duration / 3600000;

wahrscheinlich eine Dezimalzahl.

Durch das Runden:
Code:
ROUND(Tage, 1, '>');

Code:
ROUND(Stunden, 1, '>');

würdest du auf den nächsthöheren Tag bzw. Stunden aufrunden.
Bei DIV würde es bedeuten du schneidest die Kommastellen einfach ab.

Code:
Stunden:=  Duration DIV 3600000;

Das wäre natürlich auch denkbar.

mfg,
winfy