Wenn/Dann Abfrage in Abhängigkeit eines Wochentages Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Jakobus
Posts: 56
Joined: 01 Jul 2019, 13:26

Wenn/Dann Abfrage in Abhängigkeit eines Wochentages

10 Jul 2019, 10:55

Hallo Freunde von AutoHotkey,

Gesucht ist eine Abfrage nach Wochentagen wie folgt.

~^j:: ; Drücke STRG + J und führe folgenden Befehl aus

Wenn heute Freitag ist, dann lasse folgendes laufen

Morgen = %A_Now% ; Schreibe das aktuelle Datum in die Variable Morgen
EnvAdd, Morgen, 3, Days ; Addiere 3 Tage und setze das Datum auf den kommenden Montag
FormatTime, Morgen, %Morgen%, dd.MM.yyyy ; Formatiere die Datumsanzeige 10.07.2019
Send, {Space}{#}%Morgen%{#}{Space} ; Gibt das Ergebnis aus und klammere das Ergebnis mit dem Sonderzeichen # und einem Leerzeichen vorn und hinten ein
Morgen = ; Variable Morgen löschen
return

Wenn heute Samstag ist, dann lasse folgendes laufen

Morgen = %A_Now% ; Schreibe das aktuelle Datum in die Variable Morgen
EnvAdd, Morgen, 2, Days ; Addiere 2 Tage und setze das Datum auf den kommenden Montag
FormatTime, Morgen, %Morgen%, dd.MM.yyyy ; Formatiere die Datumsanzeige 10.07.2019
Send, {Space}{#}%Morgen%{#}{Space} ; Gibt das Ergebnis aus und klammere das Ergebnis mit dem Sonderzeichen # und einem Leerzeichen vorn und hinten ein
Morgen = ; Variable Morgen löschen
return

An allen anderen Tage mache folgendes

Morgen = %A_Now% ; Schreibe das aktuelle Datum in die Variable Morgen
EnvAdd, Morgen, 1, Days ; Addiere einen Tag auf das aktuelle Datum
FormatTime, Morgen, %Morgen%, dd.MM.yyyy ; Formatiere die Datumsanzeige 10.07.2019
Send, {Space}{#}%Morgen%{#}{Space} ; Gibt das Ergebnis aus und klammere das Ergebnis mit dem Sonderzeichen # und einem Leerzeichen vorn und hinten ein
Morgen = ; Variable Morgen löschen
return


Es ändert sich im Code nur der Adder in der 2. Zeile
Möglicherweise lässt sich auch nur diese eine Zeile mit einer Wenn/Dann-Abfrage umbauen.

Am Ende drückt man STRG + J und es erscheint immer das Datum von Morgen im folgendem Format mit einem Leerzeichen davor und dahinter
#11.07.2019#
Für Freitag und Samstag ist der Sprung auf Montag gewünscht.

Gesucht ist eine Lösung für die Wenn/Dann Abfrage nach Wochentagen
toralf
Posts: 868
Joined: 27 Apr 2014, 21:08
Location: Germany

Re: Wenn/Dann Abfrage in Abhängigkeit eines Wochentages

10 Jul 2019, 14:07

Du kannst das Kommando FormatTime mit der Option WDay nutzen, um den aktuellen Wochentag zu ermitteln. Abhängig davon kannst du dann ja wie du selbst geschrieben hast die zu addierende Zahl ermitteln
ciao
toralf
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Wenn/Dann Abfrage in Abhängigkeit eines Wochentages

10 Jul 2019, 16:35

... oder auch die eingebaute Variable A_WDay:

Code: Select all

~^j:: ; Drücke STRG + J und führe folgenden Befehl aus
Jetzt := A_Now
Wochentag := A_WDay

If (Wochentag = 6) ; Freitag
   AddiereTage := 3
Else If (Wochentag = 7) ; Samstag
   AddiereTage := 2
Else
   AddiereTage := 1

Morgen := Jetzt
Morgen += %AddiereTage%, Days
FormatTime, Morgen, %Morgen%, dd.MM.yyyy ; Formatiere die Datumsanzeige 10.07.2019
Send, {Space}{#}%Morgen%{#}{Space} ; Gibt das Ergebnis aus und klammere das Ergebnis mit dem Sonderzeichen # und einem Leerzeichen vorn und hinten ein
Return
Jakobus
Posts: 56
Joined: 01 Jul 2019, 13:26

Re: Wenn/Dann Abfrage in Abhängigkeit eines Wochentages  Topic is solved

11 Jul 2019, 10:51

Danke für die gelungene Lösung an "Just Me" und für den Hinweis von "toralf"
Die Lösung hätte ich in der Geschwindigkeit nicht gefunden.

Hier der vollständige Code für die Nachwelt.
Das Setzen/Addieren eines Datums in Abhängigkeit des aktuellen Wochentages über die If/Else Abfrage

Code: Select all

~^j:: ; Drücke STRG + J und führe folgenden Befehl aus

Heute = %A_Now% ; Schreibe das aktuelle Datum in die Variable Heute

Wochentag := A_WDay ; Schreibe den aktuelle 1-stellige Wochentag (1-7) in die Variable Wochentag. 1 ist Sonntag in allen Sprach- und Regionseinstellungen.

If (Wochentag = 6) ; Freitag
   AddiereTage := 3
Else If (Wochentag = 7) ; Samstag
   AddiereTage := 2
Else
   AddiereTage := 1 ; So, Mo, Di, Mi, Do

EnvAdd, Heute, AddiereTage, Days ; AddiereTage auf das heutige Datum und setze das Datum auf den kommenden Tag

FormatTime, Heute, %Heute%, dd.MM.yyyy ; Formatiere die Datumsanzeige wie folgt: 10.07.2019

Send, {Space}{#}%Heute%{#}{Space} ; Gibt das Ergebnis aus und klammere das Ergebnis mit dem Sonderzeichen # und einem Leerzeichen vorn und hinten ein

Heute = ; Variable Heute löschen
AddiereTage = ; Variable AddiereTage löschen

return

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 58 guests