Domino 9 und frühere Versionen > ND6: Entwicklung

Rechnen mit Zeit

(1/2) > >>

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