AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.02.20 - 04:38:02
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News: Jetzt mit HCL Notes / Domino 11 und einem Extraboard für Nomad!
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Differenz zwischen zwei Zeitfeldern ohne Wochenende/Feiertage IN STUNDEN
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Differenz zwischen zwei Zeitfeldern ohne Wochenende/Feiertage IN STUNDEN  (Gelesen 509 mal)
Caleb666
Junior Mitglied
**
Offline Offline

Beiträge: 76


« am: 09.01.20 - 09:21:47 »

Guten Morgen,

ich möchte gerne die Differenz zwischen zwei Zeit-/Datumsfeldern ohne Wochenende und Feiertage in Formeldsprache berechnen, jedoch
nicht in Tagen wie z.B. über @BusinessDays sondern in Stunden, da ich als Ergebnis mit Stundenwerten weiterarbeiten möchte (wie z.B. Bearbeitung erfolgte innerhalb 24-72h, etc.

Wie könnte ich das lösen?
Gibt es hierfür auch eine einfache Funktion in Formelsprache?
Gespeichert
Andrew Harder
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 289



« Antworten #1 am: 09.01.20 - 10:43:19 »

Warum multiplizierst Du die Tage bei @BusinessDays nicht einfach mit der Anzahl der Arbeitsstunden?
Gespeichert

Andy
Caleb666
Junior Mitglied
**
Offline Offline

Beiträge: 76


« Antworten #2 am: 09.01.20 - 11:33:34 »

Da es mir nicht um die Anzahl der Arbeitsstunden geht, sondern um die tatsächliche Differenz zwischen den zwei Zeitwerten, aber ohne Wochenende.
« Letzte Änderung: 09.01.20 - 11:39:07 von Caleb666 » Gespeichert
Andrew Harder
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 289



« Antworten #3 am: 09.01.20 - 11:35:00 »

Also mit dem Multiplikator 24?
Gespeichert

Andy
Caleb666
Junior Mitglied
**
Offline Offline

Beiträge: 76


« Antworten #4 am: 09.01.20 - 11:38:30 »

Also wenn z.B. eine Anfrage um 15:30 rein kommt und 48h für die Bearbeitung zur Verfügung stehen, möchte ich gerne prüfen können, ob dieses Zeitfenster überschritten wurde.
« Letzte Änderung: 09.01.20 - 11:49:16 von Caleb666 » Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11350


« Antworten #5 am: 09.01.20 - 11:41:27 »

multipliziere die Anzahl der Businessdays mit 24 und ziehe von dem Ergebnis die Differenz zwischen 15:30 und 24:00 ab
Gespeichert
Bastel123
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 317


« Antworten #6 am: 09.01.20 - 11:57:10 »

Ich würde beim Anlegen des Dokumentes das maximale Enddatum berechnen und reinschreiben.

Dann kannst Du einfach mit größer oder kleiner arbeiten.
Gespeichert

Kaum macht man's richtig, schon funktioniert's.
Caleb666
Junior Mitglied
**
Offline Offline

Beiträge: 76


« Antworten #7 am: 09.01.20 - 12:11:36 »

Stimmt, wenn ich es gleich bei der Anlage berechne, tue ich mich leichter.
Vielen Dank an alle für die tollen Lösungsansätze!!!
Gespeichert
Andrew Harder
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 289



« Antworten #8 am: 09.01.20 - 12:43:29 »

In dem Fall würde ich dann eher mit @Weekday und @Adjust arbeiten.
Das ist dann später einfacher für samstags und sonntags zu erweitern.
Außerdem sieht die Formel dann übersichtlicher aus.

In etwa so:
Code:
_weekday := @Weekday(@Created);
_adjust := @If(
_weekday = 1; 3;
_weekday = 2; 2;
_weekday = 3; 2;
_weekday = 4; 2;
4);
@Adjust(@Created; 0; 0; _adjust; 0; 0; 0)

Feiertage berücksichtigt das natürlich nicht!
« Letzte Änderung: 09.01.20 - 13:18:04 von Andrew Harder » Gespeichert

Andy
Bastel123
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 317


« Antworten #9 am: 09.01.20 - 13:51:27 »

Außerdem würde ich ein Feld einführen im dem steht, ob die Zeit überschritten wurde oder nicht.
Dieses Feld wird durch einen periodischen Agenten gesetzt.

Dann brauchst Du keine Ansichten mit @now im Vergleich und kannst auch leichter Auswertungen programmieren.
Gespeichert

Kaum macht man's richtig, schon funktioniert's.
Caleb666
Junior Mitglied
**
Offline Offline

Beiträge: 76


« Antworten #10 am: 09.01.20 - 17:50:29 »

Für neue Dokumente werden ich den Ansatz von "bastel123" verwenden und das Enddatum der Bearbeitung gleich mit setzen und die spätere Abfrage mittels eines Agenten laufen lassen.

Für bestehende Dokumente tue mich mich gerade noch etwas schwer.
Habe ja ein Anfangs- und Bearbeitungsdatum mit Uhrzeit.

Um erst mal die Anzahl an Stunden für den ganzen Tag zu erhalten (unter Berücksichtigung des Wochenendes) muss ich ja mittels @BusinessDays das Ergebnis mit 24 multiplizieren.

Im Anschluss ziehe ich zum einen die Differenz zwischen den bereits vergangenen Stunden des Anfangsdatums von 24h ab
und zu anderen die Differenz zwischen den bereits vergangenen Stunden des Enddatums von 24h ab.

Code:
@BusinessDays(Eingang; Bearbeitung; 1:7;[Feiertage])*24 - ( 24 -@Hour(Eingang)) - (24 -@Hour(Bearbeitung))

Irgendwo hab ich jedoch einen Denkfehler, da die Ergebnisse nur teilweise passen... Huh Huh

Gespeichert
HH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 328



« Antworten #11 am: 09.01.20 - 20:33:09 »

Ich gehe davon aus, dass Eingang und Bearbeitung weder Wochenendtage noch Feiertage sind.

Code:
_freieZeitInSekunden := (@BusinessDays(Eingang; Bearbeitung ) - @BusinessDays(Eingang; Bearbeitung; 1:7;[Feiertage]) )  *24*60*60 ;
_arbeitszeitInSekunden := Bearbeitung - Eingang - _freieZeitInSekunden ;

Daraus dann die Stunden zu ermitteln sollte machbar sein.

Dein code, wie folgt geändert

Code:
@BusinessDays(Eingang; Bearbeitung; 1:7;[Feiertage])*24 - ( 24 -@Hour(Eingang)) - @Hour(Bearbeitung)

dürfte auch funktionieren (ist allerdings ungenauer).

Gruß
Hubert
« Letzte Änderung: 09.01.20 - 20:59:43 von HH » Gespeichert
Caleb666
Junior Mitglied
**
Offline Offline

Beiträge: 76


« Antworten #12 am: 10.01.20 - 13:58:28 »

Danke, der Code
Code:
_freieZeitInSekunden := (@BusinessDays(Eingang; Bearbeitung ) - @BusinessDays(Eingang; Bearbeitung; 1:7;[Feiertage]) )  *24*60*60 ;
_arbeitszeitInSekunden := Bearbeitung - Eingang - _freieZeitInSekunden ;

funktioniert wunderbar!!!
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: