LUA - Gerade und ungerade Wochen rausfinden?

Ich würde gerne jede 2. Woche an einem bestimmten Wochentag einen Befehl auslösen.
Habe dazu schon rausgefunden wie man den Wochentag in eine Variable bekommt und wie man die Wochennummer rausfindet. Nun fehlt mir noch eine Lösung festzustellen ob sich in der Variable „Now_Week“ eine gerade oder ungerade Zahl befindet.

now_week = os.date("%W", timestamp)

Kann mir jemand einen Tipp geben?

Du kannst mit dem modulo operator arbeiten. (Rest aus Division)

if now_week % 2 == 1 then  
  print( "ungerade Woche")
end
1 Like

Super vielen Dank, @mdietinger,
Wenn ich die gerade woche brauchen, mach ich einfach

if now_week % 2 ~= 1 then  
  print( "gerade Woche")
end

habs gerade getestet :slight_smile:
Oder gibt es einen besseren Weg ?

Das ist richtig.
Oder == 0 geht auch.

1 Like

Wenn du beide Möglichkeiten brauchst, dann kannst Du für gerade Wochen ein Else einfügen.

1 Like

Ja, habs eingebaut, danke!!
Jetzt fehlt mir nur noch eines:

Gibt es vielleicht irgendeine Idee, wie ich den 1. Samstag im Monat rausfinden kann??

Habe nur dieses Skript für die Feiertage gefunden, da ist alledings für mich nichts erkennbares drinnen

Hallo @pblacky

Was hälst du davon einen immer wiederkehrenden Termin in den Google Kalender einzutragen und diesen dann auszuwerten.
Dann kannst du alles Mögliche steuern ohne besonderes Programm.
Gruss Frank

@pblacky,

vY = 2021
vM = 8
Wday = tonumber(os.date("%w", os.time{year=vY, month=vM, day=1, hour=0}))
First_SAT = 7-Wday
print(Wday)
print(First_SAT)

lg,

Hallo @Berges01 ,
Danke für den Tipp, hab mich mit der Integration des Google Kalenders (noch) nicht auseinandergesetzt.
Derzeit ist mein Ziel die „1. Samstag im Monat“ in meine hervorragend funktionierende Cronjob Szene hinzuzufügen!

1 Like

Danke @mdietinger ,
Ich habe dein Codeschnipsel gerade eingebaut, sieht gut aus!!
Die Zahl in „First_SAT“ ist klar, dort ist das Tagesdatum des ersten Samstag des jeweiligen Monats drinnen. Habe das für die Monate (8, 9, 10) mal getestet → PASST, vielen Dank!!

Bin nun gerade dabei zu verstehen WAS GENAU passiert :wink:

in Wday errechnest du aus der Jahreswochenzahl „%w“ mit dem Jahr und dem Monat was genau?
Da blick ich noch nicht ganz durch?

ICH poste den fertigen Coden dann mit einer kurzen Erklärung, wenn das für dich OK ist :wink:

Hallo @pblacky,

Mit Wday berechne ich den Wochentag des 1. Tages des Monats.
Dieser kann 0-6 (Sonntag, MO, DI,MI,DO,FR,SA) sein.
Wenn ich von 7, den ersten Wochentag(Zahl) abziehe, dann komm ich auf den 1. Samstag.
Für einen Freitag müsste ich Wday von 6 abziehen und falls Ergebnis kleiner 1, dann zu 7 Addieren.
Auf alle Fälle nachdem Samstag der letzte Tag in der HC3 ist, ist die Berechnung relativ einfach.

lg,
Markus