Stunden zwischen Uhrzeiten berechnen  GELÖST

Anwenderaustausch zur PhraseExpress Makroprogrammierung
Post Reply
Flogisch
Posts: 16
Joined: 19 Jul 17, 06:59

Stunden zwischen Uhrzeiten berechnen

Post by Flogisch » 23 May 20, 10:49

Hallo leute,

Da ich versuche meine Arbeitsstunden automatisch mit PE ausrechnen zu lassen,
mal eine kurze Frage. Ist es möglich mit dem #calc Makro, die Stunden zwischen zwei Uhrzeiten auszurechnen?

Code: Select all

Zum beispiel: 03.05.2020 22:00, 04.05.2020 00:02
Ergebnis: 2:02 (Stunden:Minuten)
Irgendwie komme ich nicht rauf, wie man sowas ausrechnen kann.
Wäre es dann auch möglich, eine Pause von 30 Minuten o.ä. abzuziehen?

Ich hoffe, mir kann jemand weiterhelfen.
Liebe Grüße
Flo

low
Posts: 44
Joined: 21 Jul 15, 07:37

Post by low » 29 May 20, 13:18

Hi Flogisch,

ich bin mir nicht sicher, ob ich mich jetzt zu weit aus dem Fenster lehne...ich glaube aber, dass das in Phraseexpress nicht geht.
Das einzige Makro das mir dazu in den Kopf kommt ist "Datumsberechnung" und das rechnet soweit ich weiß nur mit ganzen Tagen.

Auch ein Versuch mit dem Makro "Berechnen" schlug bei mir fehl.

Gruß

low
Posts: 44
Joined: 21 Jul 15, 07:37

Post by low » 29 May 20, 13:34

p.s.

Ein kleines Workaround fiele mir ein:

Du nimmst eine Excel-Tabelle mit

Zelle A1 (Format:"Datum" > "DD.MM.YY HH:MM") = Startdatum und Uhrzeit
Zelle A2 (Format:"Datum" > "DD.MM.YY HH:MM") = Enddatum und Uhrzeit
Zelle A3 (Format:"Uhrzeit" > "37:30:55") = Berechnet aus A2-A1

Die Werte der Zelle A3 kannst Du dann mit der Phraseexpress Funktion "externe Daten" > "MS Excel Zellenwerte" holen.
Das dürfte allerdings kaum einen zeitlichen Vorteil gegenüber "gleich in Excel machen" bringen.

Technical Support
Posts: 2693
Joined: 10 Feb 06, 22:23

Post by Technical Support » 29 May 20, 14:08

Vorausgesetzt Datum1 ist immer kleiner als Datum2 und deutsches Datumsformat wird verwendet, sollte so etwas hier funktionieren:

Code: Select all

{#input -head Start: -def 03.05.2020 08:00 -single -embeddata JVslUEVYX0VNQkVEX1BBUkFNUyVdJXsjc2V0dGVtcCAtbmFtZSBAZGF0ZTEgLWNvbnRlbnQgJVsldmFsdWUlXSV9 -variablename Start}{#input -head Ende: -def 04.05.2020 02:30 -single -embeddata JVslUEVYX0VNQkVEX1BBUkFNUyVdJXsjc2V0dGVtcCAtbmFtZSBAZGF0ZTIgLWNvbnRlbnQgJVsldmFsdWUlXSV9 -variablename Ende}{#input -head Pause in Minutes: -def 30 -single -embeddata JVslUEVYX0VNQkVEX1BBUkFNUyVdJXsjc2V0dGVtcCAtbmFtZSBAcGF1c2UgLWNvbnRlbnQgJVsldmFsdWUlXSV9 -variablename Pause}{#settemp -name @minutes -content {#calc {#datecalc -date1 {#gettemp @date1 -variablename @date1} -date2 {#gettemp @date2 -variablename @date2} -mode 2}*1440+(((24-{#regexget -text {#gettemp @date1 -variablename @date1} -expr (?<=\s)\d{1,2\\\}(?=:) -variablename std1})*60+{#regexget -text {#gettemp @date1 -variablename @date1} -expr (?<=:)\d{1,2\\\} -variablename min1})+({#regexget -text {#gettemp @date2 -variablename @date2} -expr (?<=\s)\d{1,2\\\}(?=:) -variablename std2}*60+{#regexget -text {#gettemp @date2 -variablename @date2} -expr (?<=:)\d{1,2\\\} -variablename min2}))-{#gettemp @pause -variablename @pause} -round 0}}{#calc floor({#gettemp @minutes -variablename @minutes}/ 60) -round 0 -variablename Stunden}:{#calc {#gettemp @minutes -variablename @minutes}%60 -digits 2 -round 0 -variablename Minuten}

low
Posts: 44
Joined: 21 Jul 15, 07:37

Post by low » 29 May 20, 14:40

Ok, es geht doch.
:-)
-embeddata JVslUEVYX0VNQkVEX1BBUkFNUyVdJXsjc2V0dGVtcCAtbmFtZSBAZGF0ZTEgLWNvbnRlbnQgJVsldmFsdWUlXSV9
Ist das Phraseexpress-Standard oder eine Custom-Geschichte?

Technical Support
Posts: 2693
Joined: 10 Feb 06, 22:23

Post by Technical Support » 29 May 20, 14:51

Das ist Standard, wenn man einen Namen für die Makros vergibt und "Ausgabe weiterverarbeiten" nutzt.

low
Posts: 44
Joined: 21 Jul 15, 07:37

Post by low » 29 May 20, 16:02

Das ist Standard, wenn man einen Namen für die Makros vergibt und "Ausgabe weiterverarbeiten" nutzt.
Super, Danke für die Information. Das ist mir bisher noch nie in einem Makro aufgefallen.

Post Reply