Domino 9 und frühere Versionen > ND6: Entwicklung
Rechnen mit Zeit
killinspree:
8)Moin,
ich versuche gerade mit domino designer eine zeiterfassungsdatenbank zu programmieren.
dabei habe ich ein problem mit dem errechnen der differenzen zwischen arbeitsbeginn und arbeitsende!
z.B: ist arbeitsbeginn 8:39 und 16:37 ist arbeitsende.
wie kann die formel aussehen das ich stunden und minuten der arbeitszeit zurückbekomme??
ich wäre euch für hilfe sehr dankbar, danke
Semeaphoros:
Vielleicht so:
@Adjust(ArbeitsEnde;0;0;0;-@Hour(ArbeitsBeginn);-@Minute(ArbeitsBeginn)
koehlerbv:
@Semaphoros:
Das ist eine kurze und prägnante Fassung.
@killinspree:
Wenn Du die Ergebnisse als separate Zahlenwerte haben möchtest, hier zwei Formeln für die Berechnung der Stunden und Minuten. Bitte beachte, daß vor Ausführung der Berechnung immer erstmal geprüft wird, ob die Felder Arbeitsbeginn und Arbeitsende auch wirklich gültige Zeiten enthalten (sonst bekommst Du schon bei der Neuanlage eines Dokumentes Fehlermeldungen !):
Stunden:
@If (@IsTime (Arbeitsbeginn) & @IsTime (ArbeitsEnde); @Integer ((Arbeitsende - Arbeitsbeginn) / 3600); 0)
Minuten:
@If (@IsTime (Arbeitsbeginn) & @IsTime (Arbeitsende);
((Arbeitsende - Arbeitsbeginn) / 60) - (@Integer ((Arbeitsende - Arbeitsbeginn) / 3600) * 60);
0)
Du siehst hier auch, daß man Datums-/Zeitfelder-Werte subtrahieren kann - das Ergebnis ist die Zeitdifferenz in Sekunden.
By the way: Wenn die Datums-/Zeitfelder auch die Eingabe des Datums erlauben, müssen natürlich vorher weitere Plausibilitätsprüfungen durchgeführt werden.
HTH,
Bernhard
Semeaphoros:
Kurz und prägnant sind die wichtigsten Eigenschaften für @Formula, Deine Ergänzungen, Bernhard, sind auch sehr wertvoll.
koehlerbv:
Nicht nur kurz und prägnant, Semaphoros, sondern ausserdem auch noch (i.d.R.) sehr performant.
Und ich geniesse es, "altes" Wissen (aus R2/R3-Zeiten, wo ja ausser @functions nix ging) wieder zu aktivieren: Ich glaube, das bekommt mir auch ganz gut ;-)
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln