Code: Alles auswählen
/**=====================================================================
Adventsberechnung
einstellbar: Beginn ab 1. Advent (So) -> $TagePlus 21
Beginn ab Mo nach Totensonntag -> $TagePlus 27
Ende: einzustellen über $ObergrenzeTag -> Heilige 3 Könige: 5; Maria Lichtmess: 33
======================================================================*/
{
"Level": [
["$utime","integer",0],
["$yday","integer",0],
["$Yday","integer",0],
["$Mon","integer",0],
["$Mday","integer",0],
["$TagInnerhalb","bool",false],
["$UntergrenzeTag","integer",0],
["$ObergrenzeTag","integer",33], // 06.01.: 5 ; 03.02.: 33
["$true","bool",true],
["$adv1","bool",false],
["$Val_ok","bool",false],
["$Min","integer",358],
["$Max","integer",365],
["$adv2","bool",false],
["$CronString","string","0 0 0 25 12 *"], // 25.12. 00:00 Uhr
["$Weihnachtsfeiertag","integer",0],
["$Wday","integer",0],
["$TagePlus","integer",27], // 21: Beginn 1.Advent(So); 27: Beginn Montag nach Totensonntag
["$TagePlusAdventssonntag","integer",21], // 21: Beginn 1.Advent(So)
["$TagSekunden","integer",86400],
["$Formel1","string","(X1+X2)*X3"],
["$Formel2","string","X1-X2"],
["$OutA","integer",0],
["$OutB","integer",0],
["$OutC","integer",0],
["$OutD","integer",0],
["$adv3","bool",false],
["$adv","bool",false]
],
"Module": [
// aktuelle Zeit "zerlegen"
["Localtime",0,"$utime",0,0,0,0,0, 0,0,"$yday",0],
// prüfen ob 01.01. bis <= $ObergrenzeTag ist -> $adv=1, sonst $adv1=0
["Limiter","$yday",0,"$TagInnerhalb",["$UntergrenzeTag","$ObergrenzeTag"]],
["And" , ["$TagInnerhalb","$true"], "$adv1"],
// prüfen ob $yday zwischen 25.12. und 31.12. liegt (31.12. max. 365, 25.12. min 358 - hängt davon ab, ob Schaltjahr ist)
["Limiter","$yday",0,"$Val_ok",["$Min", "$Max"]],
["And" , ["$Val_ok","$true"], "$adv2"],
// timestamp vom 25.12. 00.01 Uhr
["Cron","$true",0,"$Weihnachtsfeiertag","$CronString"],
// Wochentag des 25.12. bestimmen
["Localtime","$Weihnachtsfeiertag",0,0,0,0,0,0,0,"$Wday",0,0],
//Zwischenergebnis berechnen
["CalcFormula",["$Wday","$TagePlus","$TagSekunden"], "$OutA", "$Formel1"],
["CalcFormula",["$Wday","$TagePlusAdventssonntag","$TagSekunden"], "$OutC", "$Formel1"], // -> für die Berechnung wann der erste Adventssonntag ist
// $OutA von $Weihnachtsfeiertag (timestamp 25.12) subtrahieren
["CalcFormula",["$Weihnachtsfeiertag","$OutA"], "$OutB", "$Formel2"],
// $OutC von $Weihnachtsfeiertag (timestamp 25.12) subtrahieren
["CalcFormula",["$Weihnachtsfeiertag","$OutC"], "$OutD", "$Formel2"],
// Jetzt Datum des 1. Adventssonntages bestimmen
["Localtime","$OutD",0,0,0,0,"$Mday","$Mon",0,0,"$Yday",0], // -> wichtig für die Berechnung der Feiertage
// Wenn $utime> $OutB ist -> $adv3=1; sonst $adv=0
["Comparator" , "$utime" , "$adv3" , "$OutB"],
// wenn $adv1 ODER $adv2 ODER $adv3 = true -> $adv=1,
["Or",["$adv1", "$adv2", "$adv3"], "$adv"]
],
"Input": [
],
"Output": [
["Advent","Es ist Adventszeit","$adv","a"],
["Tag 1. Adventssonntag","","$Mday","a"],
["Monat 1. Adventssonntag","","$Mon","a"],
["Day of Year 1. Adventssonntag","","$Yday","a"]
]
}
/**Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. */