Domino 9 und frühere Versionen > ND8: Entwicklung
Uhrzeit um 15 Minuten erhöhen
Klafu:
Hallo,
ich hab eine relativ einfach Frage - denk ich zumindest aber ich komm grad trotzdem nich auf die Lösung :(
Ich hab zwei Felder: StartTime und EndTime.
Beides sind Zeitfelder und zeigen eine Uhrzeit an ( Bsp Kalendereinträge: Angfangs und Endzeit)
Nun will ich, dass zur Uhrzeit, die im Feld StartTime steht, 15 Minuten dazu gerechnet werden und diese Zeit dann im Feld EndTime steht. Die im Notes hinterlegte Funktion rechnet aber 30 min dazu. Wie kann ich das auf 15 minuten reduzieren?
Mich irritieren auch die zwei Rounded definitionen, die ja im Code nicht verwendet werden?
StartTime
--- Code: ---CurTime:=@Now;
NumMinutes:=@Minute(CurTime);
NumSeconds:=@Second(CurTime);
AdjustedMinutes:=60-NumMinutes;
Rounded1:=@Round(NumMinutes;15);
Rounded2:=@Abs(15-NumMinutes) + NumMinutes;
FIELD StartTime:=@Adjust(CurTime;0;0;0;0;AdjustedMinutes;-NumSeconds);
@If(@IsAvailable(StartDateTime); StartDateTime; StartTime)
--- Ende Code ---
EndTime
--- Code: ---FIELD EndTime:=@Adjust(StartTime;0;0;0;1;0;0);
@If(@IsAvailable(EndDateTime); EndDateTime; EndTime)
--- Ende Code ---
Gruß
Chris
Edit: Ich hätte ja gedacht, dass allein schon das hichsetzen der Minuten über "@Adjust(StartTime;0;0;0;0;15;0);" reichen würde.
Aber bevor ich das teste, wollte ich erstmal verstehn warum da Über Adjust eine Stunde hochgesetzt wird, aber sich in Wahrheit die Zeit nur um 30 Minuten erhöht
Dr.Domino:
Ich verstehe den ersten Teil des Codes noch nicht so ganz ...
Gebeben sei: 08:25:12
NumMinutes = 25
NumSeconds = 12
AdjustedMinutes =60-25 = 35
Rounded1:=@Round(NumMinutes;15); ... werden beide nicht weiter benutzt?
Rounded2:=@Abs(15-NumMinutes) + NumMinutes; ... werden beide nicht weiter benutzt?
FIELD StartTime:=@Adjust(CurTime;0;0;0;0;AdjustedMinutes;-NumSeconds);
= 08:25:12 + 35 Minuten - 12 Sekunden ... = 09:00
Das rechnet irgendwie die nächste Stunde aus - ist das "Absicht"?
Und Deine EndTime Formel würde da 1h draufpacken -> 10:00
@Adjust(StartTime;0;0;0;0;15;0); sollte 09:15 draus machen
Klafu:
Ja, das dachte ich mir auch.
Im Prinzip rundet die Funktion hinter StartTime die aktuelle Uhrzeit auf die volle Stunde auf und setzt die Zeit im Feld EndTime um 1 Stunde hoch.
Ob das Absicht ist - ich denke schon. Der Code ist IBM Code und steht in der Maske der Reservierungen (ReservierungsDB: Begin-Feld und Ende-Feld).
Aus irgendeinem Grund macht die Formel aber nicht das, nach dem es aussieht. Er setzt nämlich die Zeit in Endtime nicht um 1 Stunde hoch, sondern nur um 30 Mnuten.
Und das wollte ich eben nur ändern. Wenn im Feld Starttime 16:00Uhr steht, soll im Feld EndTime 16:15Uhr und nicht 16:30Uhr steht.
Dabiei bin ich auf diese komische Formel gestoßen. Ich kann mir nämlich nicht erklären, wo Notes die 30 Minuten setzt.
Drum wollte ich mal fragen ob ich den Code falsch lese oder ob mir jemand sagen kann, wie es zu den 30 Minuten kommt. Ich will Code nicht ändern bevor ich ihn nicht verstehe :)
Chris
cebolina:
@Chris
Du hast aber schon gesehen, dass in den Feldern aus der Reservierungs-DB noch bei Onchange, Entering und Exiting was eingetragen ist?
Ich habe mir das jetzt nicht explizit aufgedröselt, aber ich vermute, dass hier der Hase im Pfeffer liegt.
Nur mit den Vorgabewerten (also ohne Onchange, Entering und Exiting) steht in "StartTime" die nächste volle Stunde (gerechnet von @Now) und in "EndTime" steht StartTime + 1 Stunde.
Gruß Stefan
/Edit
Um Unklarheiten vorzubeugen:
Die Uhrzeiten sind als Vorgabewert bei neuen Dokumenten eingetragen.
Wenn ein User die Uhrzeit bei StartTime ändert, musst du natürlich dafür sorgen, dass EndTime nicht vor StartTime liegt, bzw. dass EndTime neu berechnet wird (15 Min.).
Ganau das machen in den Feldern der Ressourcen-DB die oben genannten Events (Onchange, Entering und Exiting)
Klafu:
Hallo Stefan,
ja. Das hab ich gesehn. Aber auch da hab ich auf Anhieb diese Zeitänderung nicht erklären können. Ich dachte das ich vielleicht nur den Code - speziell die Round-Sachen - falsch interpretiere.
Ich glaub bevor ich da jetzt ewig weiter suche lass ich es einfach. Der nutzen wird dem Aufwand dann nicht gerecht.
Danke für die Unterstützung euch beiden :)
Chris
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln