Domino 9 und frühere Versionen > Entwicklung

Rechnen mit Zeitformaten

(1/2) > >>

Grabby:
Hallo zusammen.

Ich habe in einer Maske drei Felder, in denen Zeiten festgehalten werden sollen. Über die Eigenschaften der Felder habe ich den Typ Datum/Zeit eingestellt, Anzeige --> Uhrzeit (Stunde, Minute, Sekunde).

Ich möchte nun in einem weiteren Feld (gleicher Type + gleiche Einstellung) die drei Zeiten (also die o.a. Stunden, Minuten und Sekunden) aufaddieren, aber irgendwie klappt das nicht. Anbei einmal meine Formel, vielleicht kann mir jemand helfen?
Momentan erhalte ich eine Fehlermeldung "Falscher Datentyp für Operation oder @Funktion".



T1:= @If(MP_ZeitAbpump="";@TextToNumber("0");@Time(MP_ZeitAbpump));
T2:=@If(MP_ZeitBesch="";@TextToNumber("0");@Time(MP_ZeitBesch));
T3:=@If(MP_ZeitBelü="";@TextToNumber("0");@Time(MP_ZeitBelü));
T1+T2+T3

Danke und Gruß
Grabby

Rob Green:
*kratz*

zunächst ersetze mal
="";@TextToNumber("0");@ mit
="";0;@

Bilde die Differenz (!) aus dem kompletten (!) Zeit/Datums Wert über Teilrechnungen, also
1. 25.03.03. 18:00 - 24.03.03 18:00 = 24 Stunden (wird von Notes in Sekunden ausgerechnet...)
2. 24.03.03. 18:00 - 23.03.03 18:00 = 24 Stunden (wird von Notes in Sekunden ausgerechnet...)
und bilde daraus die Summe = 48 Stunden

passt dat so für Dich?



Grabby:
Das Problem ist, dass ich nicht die Differenzen ausrechnen möchte!

Ich habe z.B. folgende Werte in den Feldern:

Feld 1:   1:00:00    (Std / Min / Sek)
Feld 2:   2:13:00    (Std / Min / Sek)
Feld 3:   0:02:17    (Std / Min / Sek).

In dem Feld 4 möchte ich jetzt nur die  Std., Min. u. Sek. aufaddieren, so dass dort der Wert  3:15:17 (Std / Min / Sek) angezeigt wird.

Grabby

Rob Green:
das aufaddieren geht so bei Notes nicht wie beim subtrahieren.
Hab Dir mal ein Beispiel auf die Schnelle hingebastelt, um zu verdeutlichen, daß Du die Stunden und Minuten separat behandeln mußt:

Feld A = Zeit / Datum
Feld B = Zeit / Datum

Feld C= Textfeld in diesem Beispiel --> Formel:

--- Code: ---hours_A:=@Hour(A)*60;
minute_A:=@Minute(A);
hours_B:=@Hour(B)*60;
minute_B:=@Minute(B);

REM "jetzt die Summe aus Stunden und Minuten";
summe:=(hours_A+hours_B+minute_A+minute_B)/60;

REM "die Minuten";
minutes_60:=@Round(((summe-@Integer(summe))*60/100)*100);
minutes_100:=summe-@Integer(summe);

REM "die Stunden ohne Minuten";
hours:=@Integer(summe);

@Text(hours)+":"+@Text(minutes_60)
--- Ende Code ---

ausgehend von diesem Beispiel kannste alles weitere wohl weiter fortführen. Minutes_60 ist die 60er und Minutes_100 die 100er Zeitskala ("Industrieminuten")

Grabby:
Vielen Dank dafür. Das werde ich ausprobieren.

Grabby  :)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln