Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Grabby am 03.06.03 - 14:18:53

Titel: Rechnen mit Zeitformaten
Beitrag von: Grabby am 03.06.03 - 14:18:53
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
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Rob Green am 03.06.03 - 14:54:43
*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?



Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Grabby am 03.06.03 - 15:50:01
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
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Rob Green am 03.06.03 - 17:10:09
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)

ausgehend von diesem Beispiel kannste alles weitere wohl weiter fortführen. Minutes_60 ist die 60er und Minutes_100 die 100er Zeitskala ("Industrieminuten")
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Grabby am 03.06.03 - 17:36:02
Vielen Dank dafür. Das werde ich ausprobieren.

Grabby  :)
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: cpo am 04.06.03 - 08:49:38
Wie wär's mit @Adjust???

HourAdd:=@Hour(B) + @Hour(C);
MinAdd:=@Minute(B) + @Minute(C);
SecAdd:=@Second(B) + @Second(C);

@Adjust(A;0;0;0;HourAdd;MinAdd;SecAdd)

Hab' ich jetzt nicht ausprobiert aber wäre mein erster Lösungsansatz.
CPO
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Grabby am 04.06.03 - 17:43:43
@ Rob Green

Super, das hat funktioniert und mir absolut weitergeholfen.

Danke
Grabby :D
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Grabby am 05.06.03 - 13:57:54
@ Rob Green


Man, diese Zeitberechnungen machen mich richtig fertig... (vielleicht ist's auch nur das warme Wetter).

Wie um himmelswillen bekomme ich denn bei dieser Sache auch die Sekunden hin ???? Vielleicht kannst Du mir noch einmal helfen ??  :-[

Danke im voraus

Grabby
Titel: Re:Rechnen mit Zeitformaten
Beitrag von: Rob Green am 05.06.03 - 23:56:52
cpo hat die passende Formel (@second) dazu gepostet. Nehm die und dann sollte es pasen. Ich weiß leider jetzt nicht, was da genau nicht klappt momentan bei Dir.