Autor Thema: Uhrzeit um 15 Minuten erhöhen  (Gelesen 2937 mal)

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Uhrzeit um 15 Minuten erhöhen
« am: 04.04.13 - 15:59:33 »
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)



EndTime
Code
FIELD EndTime:=@Adjust(StartTime;0;0;0;1;0;0);
@If(@IsAvailable(EndDateTime); EndDateTime; EndTime)


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
« Letzte Änderung: 04.04.13 - 16:24:01 von Klafu »
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Dr.Domino

  • Senior Mitglied
  • ****
  • Beiträge: 287
  • Geschlecht: Männlich
  • LN since 1996 ...
Re: Uhrzeit um 15 Minuten erhöhen
« Antwort #1 am: 05.04.13 - 08:36:19 »
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
« Letzte Änderung: 05.04.13 - 08:38:39 von Dr.Domino »
VG,
Markus

IBM Domino 9.0.1, Lotus Domino 8.5.3 (QuickR), CentOS 6, Win64)

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Uhrzeit um 15 Minuten erhöhen
« Antwort #2 am: 05.04.13 - 10:17:13 »
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
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Uhrzeit um 15 Minuten erhöhen
« Antwort #3 am: 05.04.13 - 10:51:56 »
@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)
« Letzte Änderung: 05.04.13 - 11:36:01 von cebolina »
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Uhrzeit um 15 Minuten erhöhen
« Antwort #4 am: 05.04.13 - 11:35:41 »
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
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Uhrzeit um 15 Minuten erhöhen
« Antwort #5 am: 05.04.13 - 11:39:38 »
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.

So wie ich das sehe sind die Round-Sachen völlig unerheblich.
Vermutlich kommt das noch aus alten Versionen und wurde von IBM einfach vergessen herauszunehmen.
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Uhrzeit um 15 Minuten erhöhen
« Antwort #6 am: 05.04.13 - 11:53:03 »
Dann hab ich zumindest das Script hinter dem Feld selbst richtig gedeutet.
Und für IBM gilt: Warum einfach wenns auch schwer geht. Die werden sich hoffentlich was dabei gedacht haben

Danke  ;)
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz