Hallo!
In meiner Anwendung soll die Dauer einer Tätigkeit angegeben werden im Format hh:mm.
Später will ich diese Zeiten addieren.
Gibt es dafür in Notes eine Funktion oder muß ich umständlich ein Script basteln?
Hallo!
In meiner Anwendung soll die Dauer einer Tätigkeit angegeben werden im Format hh:mm.
Später will ich diese Zeiten addieren.
Gibt es dafür in Notes eine Funktion oder muß ich umständlich ein Script basteln?
Hallo,
Angenommen, Du hast eine textliste, die so aussieht:
_list := "hh1:mm1":"hh2:mm2":"hh3:mm3"
dann könnte man doch
@Sum(
@TextToNumber(@Left(_list;":")) +
@TextToNumber(@Right(_list;":")) / 60
)
machen. Oder so ähnlich...
Gruss, Bernd
also ich würde in einem zusätzlichen feld die 'industriestunden' speichern
->
stunden := @Hour(feldmitzeitwert);
minuten := @Round(@Minute(feldmitzeitwert) / 60;0,01);
stunden + minuten
die kann man dann 'vernünftig' addieren.
anzeige im format "hh:mm":
_hour := @Integer(industriezeit);
_minute := @Round((industriezeit - _hour) * 60;1);
tmp_time := @Right("00" + @Text(_hour);2) + ":" + @Right("00" + @Text(_minute);2);
@If(tmp_time = "00:00";"";tmp_time)
in einer ansicht wirst du das ganze allerdings nicht addieren können.
Hi!
Ich will das nicht in einer Ansicht, sondern in einem Script-Agenten läuft...
Hmm... wie denn jetzt? Script oder kein Script?
Aber egal wie es ist. Für Zeiten Addieren kenne ich keine separate Funktion. Unterm Strich kannst Du aber - ob Script oder nicht - immer recht einfach addieren.
Summe = Stunden1 * 60 + Minuten1 + Stunden2 * 60 + Minuten2
Stunden = Integer(Summe/60)
Minuten = Modulo(Summe/60)
Das geht auf jeden Fall einfach per @Functions.
Gruss, Bernd
Hi Bernd!
Hatte mich evtl. etwas unglücklich ausgedrückt
Es ist definitiv ein Script. Neben anderen Feldern mit "normalen" Zahlenwerten will ich auch das Dauer Feld addieren.
Ich hatte auf eine Standard-LS-Funktion gehofft....
...so wie adjust z.B.
Naja, dann eben selber eine LS-Fkt. schreiben...
Hier meine Lösung:
Dim PZeit As String
Dim zeit_sum As Integer
Dim stunden As Integer
Dim minuten As Integer
Dim stunden_sum As Integer
Dim minuten_sum As Integer
.
.
.
Set doc = coll.GetFirstDocument ' Alle gefundenen Dokumente
do until doc is nothing
PZeit = doc.Prüfzeit(0)
stunden = Hour(PZeit)
minuten = Minute(PZeit)
stunden_sum = stunden_sum + stunden
minuten_sum = minuten_sum + minuten
Set doc = coll.GetNextDocument(doc)
loop
zeit_sum = stunden_sum * 60 + minuten_sum
stunden = zeit_sum / 60
minuten = zeit_sum Mod 60
If minuten <10 Then
doc.PZeit = Cstr(stunden) + ":0" + Cstr(minuten)
Else
doc.PZeit = Cstr(stunden) + ":" + Cstr(minuten)
End If
Beim Testen ist mir noch ein Fehler im Script bzw. in der Hilfe von Notes aufgefallen:
Falsch:
stunden = zeit_sum / 60
Hier wird gnadenlos gerundet (z.b. bei 0:59 wird 1:00 errechnet)
Richtig:
stunden = zeit_sum \ 60
warum baust Du Dir nicht 2 NotesDateTime-Werte zusammen und nimmst dann die vorhanden Mittel in der Klasse?
Gruß
Dirk