Berechnung Totensonntag - Weihnachtsbeleuchtung
Moderator: Co-Administratoren
Berechnung Totensonntag - Weihnachtsbeleuchtung
Hallo zusammen,
die Weihnachtsdeko soll vom Totensonntag (eine Woche vor dem ersten Advent) bis zum 07.01. leuchten.
ich kenne das MEGA Script zur Berechnung von unzähligen Feiertagen etc.
Im möchte allerdings ungern so ein großes Script benutzen, wenn ich eigentlich "nur" den Totensonntag (7 Tage vor dem 1. Advent) berechnen möchte...
Frage: Eine "SV Weihnachten JA/NEIN" soll sich auf Ja stellen, wenn der Totensonntag war (erster Montag nach dem Totensonntag) und bis zum 07.01. auf JA verbleiben, nach dem 08.01 soll die SV auf NEIN gestellt werden usw.....
Hat jemand eine Idee? Hab schon gegoogelt aber nicht wirklich etwas gefunden.
Danke für die Hilfe !
Gruß, Jörg
die Weihnachtsdeko soll vom Totensonntag (eine Woche vor dem ersten Advent) bis zum 07.01. leuchten.
ich kenne das MEGA Script zur Berechnung von unzähligen Feiertagen etc.
Im möchte allerdings ungern so ein großes Script benutzen, wenn ich eigentlich "nur" den Totensonntag (7 Tage vor dem 1. Advent) berechnen möchte...
Frage: Eine "SV Weihnachten JA/NEIN" soll sich auf Ja stellen, wenn der Totensonntag war (erster Montag nach dem Totensonntag) und bis zum 07.01. auf JA verbleiben, nach dem 08.01 soll die SV auf NEIN gestellt werden usw.....
Hat jemand eine Idee? Hab schon gegoogelt aber nicht wirklich etwas gefunden.
Danke für die Hilfe !
Gruß, Jörg
-
- Beiträge: 322
- Registriert: 25.11.2016, 19:52
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 20 Mal
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Hallo, da der Totensonntag immer zwischen dem 20. und dem 26. November ist würde ich über das Zeitmodul jährlich am 26.November kurz vor Mitternacht die Weihnachtsbeleuchtungsaktivierungssystemvariable setzen.
Gruß AF
Gruß AF
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Da hast du ein Beispiel, wie Adventstage berechnet werden :
Code: Alles auswählen
integer TagesMin=86400 ;
integer Datum = (system.Date("%Y").ToInteger()#"-12-24 12:00:00").ToTime().ToInteger();
integer Wochentag = Datum.ToTime().Format("%w");
while (Wochentag <> 0) {
Datum = Datum - TagesMin;
Wochentag = Datum.ToTime().Format("%w");
};
string Advent1 = ((Datum - TagesMin * 7 *3).ToTime().Format("%d.%m.%Y"));
string Advent2 = ((Datum - TagesMin * 7 *2).ToTime().Format("%d.%m.%Y"));
string Advent3 = ((Datum - TagesMin * 7 *1).ToTime().Format("%d.%m.%Y"));
string Advent4 = ((Datum - TagesMin * 7 *0).ToTime().Format("%d.%m.%Y"));
string BuBTag = (Datum - (( TagesMin * 7 *3) + (TagesMin*11 ))).ToTime().Format("%d.%m.%Y");
!oder so
WriteLine( "Busstag = " # (Datum - (( TagesMin * 7 *3) + (TagesMin*11 ))).ToTime().Format("%d.%m.%Y"));
WriteLine( "1.Advent = " # (Datum - TagesMin * 7 *3).ToTime().Format("%d.%m.%Y"));
WriteLine( "2.Advent = " # (Datum - TagesMin * 7 *2).ToTime().Format("%d.%m.%Y"));
WriteLine( "3.Advent = " # (Datum - TagesMin * 7 *1).ToTime().Format("%d.%m.%Y"));
WriteLine( "4.Advent = " # (Datum - TagesMin * 7 *0).ToTime().Format("%d.%m.%Y"));
!oder so
integer ButD= (Datum - (( TagesMin * 7 *3) + (TagesMin*11 ))).ToTime().Yearday();
integer Ad1D= (Datum - TagesMin * 7 *3).ToTime().Yearday();
integer Ad2D= (Datum - TagesMin * 7 *2).ToTime().Yearday();
integer Ad3D= (Datum - TagesMin * 7 *1).ToTime().Yearday();
integer Ad4D= (Datum - TagesMin * 7 *0).ToTime().Yearday();
WriteLine("lfd Tag des Jahres Busstag : " #ButD);
WriteLine("lfd Tag des Jahres 1.Advent: " #Ad1D);
WriteLine("lfd Tag des Jahres 2.Advent: " #Ad2D);
WriteLine("lfd Tag des Jahres 3.Advent: " #Ad3D);
WriteLine("lfd Tag des Jahres 4.Advent: " #Ad4D);
Gruß
Harry
Harry
-
- Beiträge: 322
- Registriert: 25.11.2016, 19:52
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 20 Mal
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Hallo noch mal, allerdings hat meine simple Variante den Nachteil, dass sie nicht den Montag unmittelbar nach dem Totensonntag ermittelt sondern den spätesten Beginn der Adventszeit benutzt.
AF
AF
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Ja, das ist doch schonmal ein Anfang...
Danke zunächst !!!
Wenn wir jetzt das Script für den Advent nehmen:
Der totensontag ist -7 Tage früher als der erste Advent.
Kann man das irgendwie einbauen?
Danke nochmal !
Gruß, Jörg
Danke zunächst !!!
Wenn wir jetzt das Script für den Advent nehmen:
Der totensontag ist -7 Tage früher als der erste Advent.
Kann man das irgendwie einbauen?
Danke nochmal !
Gruß, Jörg
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
z.B. so nach der while-Schleife
Code: Alles auswählen
string TotSoMo = (Datum - ((TagesMin * 7 * 3) + (TagesMin * 6))).ToTime().Format("%d.%m.%Y");
WriteLine("Montag nach Totensonntag: " # TotSoMo);
string heute = system.Date().ToTime().Format("%d.%m.%Y");
WriteLine(heute);
string varname = "SV Weihnachten";
if (heute >= TotSoMo)
{
WriteLine("an");
if (dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname).Value() == false );
{
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname).State(true);
}
}
Gruß
Harry
Harry
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Hallo Harry,
dankeschön !
Aber ich komme mit dem Vorgehen nicht klar:
1. Muss ich beide Scripte parallel nutzen (ggf. zeitversetzt)?
2. Wie müssen die SV aussehen (genaue Bezeichnung und Variablentyp)?
Danke...
Gruß, Jörg
dankeschön !
Aber ich komme mit dem Vorgehen nicht klar:
1. Muss ich beide Scripte parallel nutzen (ggf. zeitversetzt)?
2. Wie müssen die SV aussehen (genaue Bezeichnung und Variablentyp)?
Danke...
Gruß, Jörg
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Nein eigentlich aus dem ersten bis nach der while-Schleife und dem zweiten ein einziges Skript machen:
Zum Speichern eine Systemvariable SV_Weihnachten vom Typ Logikwert anlegen.
Skript in ein Programm einbinden.
Laufzeitz z.B. ab 15.11. bis SV_Weihnachten wahr ist.
bzw:
und im Skript SV_Weihnachten dagen ersetzen.
Die Variable würde jetzt beim ersten Programmlauf auf wahr gesetzt - 22.11. war ja schon
Viel Freude am Leuchten...
Code: Alles auswählen
!Berechnung Montag nach Totensonntag ***********************
integer TagesMin=86400 ;
integer Datum = (system.Date("%Y").ToInteger()#"-12-24 12:00:00").ToTime().ToInteger();
integer Wochentag = Datum.ToTime().Format("%w");
while (Wochentag <> 0) {
Datum = Datum - TagesMin;
Wochentag = Datum.ToTime().Format("%w");
};
string TotSoMo = (Datum - ((TagesMin * 7 * 3) + (TagesMin * 6))).ToTime().Format("%F");
string heute = system.Date().ToTime().Format("%F");
string varname = "SV_Weihnachten";
if (heute >= TotSoMo)
{
if (dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname).Value() == false )
{
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname).State(true);
}
}
Skript in ein Programm einbinden.
Laufzeitz z.B. ab 15.11. bis SV_Weihnachten wahr ist.
bzw:
Wenn dir ein anderer Variablenname besser gefällt, einfach entsprechend anlegen
und im Skript SV_Weihnachten dagen ersetzen.
Die Variable würde jetzt beim ersten Programmlauf auf wahr gesetzt - 22.11. war ja schon
Viel Freude am Leuchten...
Zuletzt geändert von Tyfys am 25.11.2021, 22:28, insgesamt 2-mal geändert.
Gruß
Harry
Harry
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
ja, Harry, was soll ich sagen:
DANKESCHÖN !
Das mit dem 07.01 ist aber noch nicht drin, oder?
Wäre das auch möglich, dass sich die SV nein stellt wenn 07.01 bis zum Totensonntag...
Gruß, Jörg
DANKESCHÖN !
Das mit dem 07.01 ist aber noch nicht drin, oder?
Wäre das auch möglich, dass sich die SV nein stellt wenn 07.01 bis zum Totensonntag...
Gruß, Jörg
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: Berechnung Totensonntag - Weihnachtsbeleuchtung
Nein ist im Skript nicht.
Ich würde einfach ein Programm anlegen.
Einmal jährlich am 7.(oder 8.Januar?) und die Variable setzen auf "falsch" bzw "nein" oder was du dafür angegeben hast.
Ich würde das eine Pgm zB Weihnachtszeit_an nennen und das andere Weihnachtszeit_aus.
Dann hast du die Programme auch hintereinander in der Listenansicht.
Könnte man auch im selben Programm als "sonst wenn"-Zweig machen.
Ich würde einfach ein Programm anlegen.
Einmal jährlich am 7.(oder 8.Januar?) und die Variable setzen auf "falsch" bzw "nein" oder was du dafür angegeben hast.
Ich würde das eine Pgm zB Weihnachtszeit_an nennen und das andere Weihnachtszeit_aus.
Dann hast du die Programme auch hintereinander in der Listenansicht.
Könnte man auch im selben Programm als "sonst wenn"-Zweig machen.
Gruß
Harry
Harry