Feiertagsberechnung - Skript
Moderator: Co-Administratoren
Re: Feiertagsberechnung - Skript
Ich habe das Skript erst heute in Betrieb genommen, daher alles manuell ausgeführt.
Letzter Zugriff auf SV ware heute von mir, als ich sie testweise von "nein" auf "ja" geändert habe um zu sehen, ob das Skript sie ändert.
Programm verwendet CuxD-Timer mit Timer_GET kleiner gleich 0 bei Aktualisierung als Trigger. Ich habe sowohl das Programm manuell gestartet als auch den Timer manuell ausgelöst. In beiden Fällen werden die SVs nicht geändert.
Letzter Zugriff auf SV ware heute von mir, als ich sie testweise von "nein" auf "ja" geändert habe um zu sehen, ob das Skript sie ändert.
Programm verwendet CuxD-Timer mit Timer_GET kleiner gleich 0 bei Aktualisierung als Trigger. Ich habe sowohl das Programm manuell gestartet als auch den Timer manuell ausgelöst. In beiden Fällen werden die SVs nicht geändert.
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Feiertagsberechnung - Skript
@Daniel: Ist doch sehr komisch. Gleiches tmp-Skript läuft bei Cash und bei mir.
Mich würde mal Folgendes interessieren
1.) Skript laufen lassen (über Skript testen).
2.) Im Log eine Meldung zu sehen?
3.) Zur Sicherheit nochmal Skript laufen lassen (wenn 2 JA war)
4.) Wieder eine Meldung?
Dann wäre das Skript vor den Baum gelaufen und würde uns vielleicht einen Schritt weiter bringen.
Andi
Mich würde mal Folgendes interessieren
1.) Skript laufen lassen (über Skript testen).
2.) Im Log eine Meldung zu sehen?
3.) Zur Sicherheit nochmal Skript laufen lassen (wenn 2 JA war)
4.) Wieder eine Meldung?
Dann wäre das Skript vor den Baum gelaufen und würde uns vielleicht einen Schritt weiter bringen.
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Feiertagsberechnung - Skript
[edit] hast Du eine Systemvariable "SV_Jahr" im Einsatz? Die muss man für das Skript auch noch haben.
Wenn nicht, dann läuft das Skript vor den Baum und Du müssstest aber auch ein ERR im Log haben [/edit]
Wenn nicht, dann läuft das Skript vor den Baum und Du müssstest aber auch ein ERR im Log haben [/edit]
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Re: Feiertagsberechnung - Skript
Mit Log meinst du "Status und Bedienung" -> Systemprotokoll? Da steht nichts drin. Im Ausgabefenster von Skript-Testen steht auch nichts, aber es wird ja auch nichts ausgegeben. Zu Testzwecken habe ich zwei WriteLine eingefügt, eines vor den ersten Var-Deklarationen, eines ganz am Schluss (siehe unten). Wenn ich auf Ausführen gehe, erscheint nach ca. 30 s (nicht gemessen) im Ausgabefeld nur die erste WriteLine-Ausgabe.
Ich wette, es ist ein OSI Level 8-Fehler, ich sehe ihn nur nicht.
Ich wette, es ist ein OSI Level 8-Fehler, ich sehe ihn nur nicht.
Code: Alles auswählen
! Feiertage
! =======
! Das Skript berechnet das Osterdatum und die Feiertage im aktuellen Jahr
! prueft ob heute und morgen ein tmpR ist und hinterlegt das Ergebnis in den
! Script von Peter Beck (01-2011)
! Österreichergänzung von randyp (05-2012)
! Version 2.2.1r2
! Sachsen eingearbeitet bzw. korrigiert von Matthias Herold (11-2013)
! Sachsen hat Buß- und Bettag: hinzugefügt, Saarland nicht: gelöscht
! von AndiN auf tmp-Variablen umgeschrieben v2.0.1 (Stand: 26.12.2015)
! Es werden folgende Systemvariablen benötigt:
! SV_Feiertag_heute (Typ: Boolean)
! SV_Feiertag_morgen (Typ: Boolean)
WriteLine("Hallo Welt 1!");
boolean tmpM = 0; ! Rosenmontag ein Brauchtumstag? 1=Ja/0=Nein
boolean tmpO = 1; ! Silvester stets ein freier Tag? 1=Ja/0=Nein
boolean tmpP = 1; ! Heiligabend stets ein freier Tag? 1=Ja/0=Nein
string tmpB = "DE"; ! AT oder DE
string tmpC = "BW"; ! Bundesland in DE, in den wir wohnen (in Österreich auch für tmpC AT eintragen)
! Fuer "tmpC" bitte folgende Abkuerzungen benutzen:
! BW = Baden-Württemberg
! BY = Bayern
! BE = Berlin
! BB = Brandenburg
! HB = Bremen
! HH = Hamburg
! HE = Hessen
! MV = Mecklenburg-Vorpommern
! NI = Niedersachsen
! NW = Nordrhein-Westfalen
! RP = RheintmpB-Pfalz
! SL = SaartmpB
! SN = Sachsen
! ST = Sachen-Anhalt
! SH = Schleswig-Holstein
! TH = Thüringen
! AT = Österreich
!****************************************************
! Ab hier Script CODE - Don't change behind this line
!****************************************************
! Berechnen des Ostersonntags im aktuellen Jahr
integer tmpA= system.Date("%Y").ToInteger(); ! Das aktuelle Jahr
integer tmpD; ! Das Tagesdatum vom Ostersonntag
integer tmpE; ! Das Monatsdatum von Ostersonntag
string tmpF; ! Das komplette Datum vom Ostersonntag
integer tmpG; ! Wird für die Berechnungen benötigt
integer tmpH; ! Wird für die Berechnungen benötigt
integer tmpI; ! Wird für die Berechnungen benötigt
integer tmpJ; ! Wird für die Berechnungen benötigt
! Die modifizierte Gauss-Formel nach Lichtenberg
tmpG = ((19 * (tmpA% 19)) + (15 + (((3 * (tmpA/ 100)) + 3) / 4) - (((8 * (tmpA/ 100)) + 13) / 25))) % 30;
tmpH = (tmpG / 29) + (((tmpG / 28) - (tmpG / 29)) * ((tmpA% 19) / 11));
tmpI = 7 - (((21 + tmpG - tmpH) - (7 - ((tmpA+ (tmpA/ 4) + (2 - (((3 * (tmpA/ 100)) + 3) / 4))) % 7))) % 7);
tmpD = (21 + tmpG - tmpH) + tmpI;
! Den errechneten Wert formatieren. Ausgehend vom Monat März
if (tmpD > 31) { ! Der Monat März hat nur 31 Tage -> Ostern im April
tmpE = 4;
tmpD = tmpD - 31;
} else { tmpE = 3; } ! Ostern ist im März
! Das Ergebnis in Variable tmpF hinterlegen
if (tmpD < 10) {
tmpF = "0" # tmpD.ToString() # "." # "0" # tmpE.ToString() # "." # dom.GetObject("SV_Jahr").Value().ToString();
} else {
tmpF = tmpD.ToString() # "." # "0" # tmpE.ToString() # "." # dom.GetObject("SV_Jahr").Value().ToString();
}
! Ermitteln, wieviele Tage der Februar im aktuellen dom.GetObject("SV_Jahr").Value() hat
tmpJ = dom.GetObject("SV_Jahr").Value() % 4;
if (tmpJ == 0) { ! Ein Schaltdom.GetObject("SV_Jahr").Value() -> Feb. = 29 Tage
string mTage = "31,29,31,30,31,30,31,31,30,31,30,31"; ! Anzahl der Tage im Monat Jan.-Dez.
} else {
string mTage = "31,28,31,30,31,30,31,31,30,31,30,31"; ! Anzahl der Tage im Monat Jan.-Dez.
}
string tmpK = system.Date("%d.%m."); ! Das heutige Datum
integer tmpL = 0;
while (tmpL < 2)
{
boolean tmpR = 0; ! 0/1 = kein/tmpR
!***************************************************************************
! Feste tmpQ bundesweit, fuer DE und AT
!***************************************************************************
if (tmpK == "01.01.") { tmpR = 1; } ! Neudom.GetObject("SV_Jahr").Value()
if (tmpK == "01.05.") { tmpR = 1; } ! MaitmpR - Tag der Arbeit
if (tmpK == "25.12.") { tmpR = 1; } ! 1. Weihnachtstag
if (tmpK == "26.12.") { tmpR = 1; } ! 2. Weihnachtstag
!***************************************************************************
! Feste tmpQ bundesweit in DE
!***************************************************************************
if (tmpB == "DE") {
if (tmpK == "03.10.") { tmpR = 1; } ! Tag der Deutschen Einheit
}
!***************************************************************************
! Feste tmpQ bundesweit in AT
!***************************************************************************
if (tmpB == "AT") {
if (tmpK == "26.10.") { tmpR = 1; } ! Österreichischer NationaltmpR
if (tmpK == "08.12.") { tmpR = 1; } ! Maria Empfaengnis
}
!***************************************************************************
! Eigene, feste tmpQ?
!***************************************************************************
if ((tmpP) && (tmpK == "24.12.")) { tmpR = 1; } ! Weihnachten
if ((tmpO) && (tmpK == "31.12.")) { tmpR = 1; } ! tmpO
!***************************************************************************
! Fester tmpR in BW, BY, ST, AT
!***************************************************************************
if ((tmpC == "BW") || (tmpC == "BY") || (tmpC == "ST") || (tmpB == "AT")) {
if (tmpK == "06.01.") { tmpR = 1; } ! Erscheinungsfest - Hl. 3 Koenige
}
!***************************************************************************
! Fester tmpR in BB, MV, SA, ST, TH, SN
!***************************************************************************
if ((tmpC == "BB") || (tmpC == "MV") || (tmpC == "SA") || (tmpC == "ST") || (tmpC == "TH") || (tmpC == "SN")) {
if (tmpK == "31.10.") { tmpR = 1; } ! Reformationstag
}
!***************************************************************************
! Fester tmpR in BW, BY, NW, RP, SL, AT
!***************************************************************************
if ((tmpC == "BW") || (tmpC == "BY") || (tmpC == "NW") || (tmpC == "RP") || (tmpC == "SL") || (tmpB == "AT")) {
if (tmpK == "01.11.") { tmpR = 1; } ! Allerheiligen
}
!***************************************************************************
! Fester tmpR in BY (nicht überall), SL, AT
!***************************************************************************
if ((tmpC == "BY") || (tmpC == "SL") || (tmpB == "AT")) {
if (tmpK == "15.08.") { tmpR = 1; } ! Maria Himmelfahrt
}
!***************************************************************************
!** Bewegliche tmpQ bundesweit **
!***************************************************************************
string tmpQ = "";
if (tmpB == "DE") {
tmpQ = "0,1,-2,39,50"; ! Array mit Differenztage zum Ostersonntag
! Ostersonntag, Ostermontag, Karfreitag, Christi Himmelfahrt, Pfingstmontag
}
if (tmpB == "AT") {
tmpQ = "0,1,39,50"; ! Array mit Differenztage zum Ostersonntag
! Ostersonntag, Ostermontag, Christi Himmelfahrt, Pfingstmontag
}
!***************************************************************************
! Bewegliche tmpQ BW, BY, HE, NW, RP, SL, (SA, TH nicht überall), AT
!***************************************************************************
if ((tmpC == "BW") || (tmpC == "BY") || (tmpC == "HE") || (tmpC == "NW") || (tmpC == "RP") || (tmpC == "SL") || (tmpC == "SA") || (tmpC == "TH") || (tmpB == "AT")) {
tmpQ = tmpQ # ",60"; ! Fronleichnam
}
!***************************************************************************
!*** Hier evtl. weitere Feier-/Brauchtumstage ***
!***************************************************************************
if (tmpM) {
tmpQ = tmpQ # ",-48"; ! tmpM stets 48 Tage vor dem Ostersonntag
}
!***************************************************************************
! Ab hier werden die Feiertage berechnet
!***************************************************************************
! Anzahl der Tage im Ostermonat
tmpJ = (3 * tmpE) - 3;
integer tmpS = mTage.Substr(tmpJ, 2).ToInteger(); ! Anzahl der Tage im Ostermonat
string tmpT; ! Das tmpRtmpK
integer tmpU; ! Anzahl der Tage von Ostersonntag entfernt
boolean tmpV; ! Für die Berechnungen in der while-tmpV notwendig
string tmpW;
foreach(tmpW, tmpQ.Split(",")) {
tmpU = tmpW.ToInteger();
tmpV = 1;
tmpJ = tmpD + tmpU; ! Differenztage zum Referenztag hinzurechnen
if (tmpU > 0) {
if (tmpJ > tmpS) {
tmpJ = tmpJ - tmpS; ! Sind wir ausserhalb des Referenzmonats?
} else { ! Nein => BerechnungtmpV nicht tmpLen.
tmpV = 0;
tmpH = tmpE;
}
} else {
if (tmpJ > 0) { ! Wenn innerhalb des Referenzmonats => BerechnungstmpV nicht tmpLen.
tmpV = 0;
tmpH = tmpE;
}
}
tmpG = 0;
if (tmpU > 0) {
while (tmpV) {
tmpG = tmpG + 1.00;
tmpH = tmpE + tmpG;
tmpI = (3 * tmpH) - 3;
tmpJ = tmpJ - mTage.Substr(tmpI, 2).ToInteger();
if (tmpJ <= 0) { ! Aktueller Monat gefunden
tmpV = 0;
tmpJ = tmpJ + mTage.Substr(tmpI, 2).ToInteger(); ! Wieder addieren, um den Tag zu berechnen
}
}
} else {
if (tmpU < 0) {
while (tmpV) {
tmpG = tmpG + 1.00;
tmpH = tmpE - tmpG;
tmpI = (3 * tmpH) - 3;
tmpJ = tmpJ + mTage.Substr(tmpI, 2).ToInteger();
if (tmpJ > 0) { ! Aktueller Monat gefunden
tmpV = 0;
}
}
}
}
if (tmpJ < 10) {
tmpT = "0" # tmpJ.ToString() # ".";
} else {
tmpT = tmpJ.ToString() # ".";
}
if (tmpH < 10) {
tmpT = tmpT # "0" # tmpH.ToString() # ".";
} else {
tmpT = tmpT # tmpH.ToString() # ".";
}
if (tmpK == tmpT) { tmpR = 1; }
}
!****************************
! Beweglicher tmpR im SN
!****************************
if (tmpC == "SN") {
! Buß- und Bettag (Mittwoch vor dem Sonntag vor dem 1. Advent)
tmpU = 32; ! 32 Tage vor dem 4. Advent
! Um den 4. Advent zu ermitteln, muss zunächst der Wochentag des 24. Dez. ermittelt werden
! Wochentagberechnung wie folgt:
! TZ = Tag mod 7 => Tag = 24 fuer den 24.12.
! MZ = 5 => 0,3,3,6,1,4,6,2,5,0,3,5 (Fuer jeden Monat Jan. bis Dez. eine Ziffer)
! JZ = (tmpJ + (tmpJ / 4)) mod 7 => tmpJ = 10, die letzten beiden Ziffern der dom.GetObject("SV_Jahr").Value()estmpJ 2010
! JHZ = (3 - (tmpJ mod 4)) * 2 => tmpJ = 20, die ersten beiden Ziffern der dom.GetObject("SV_Jahr").Value()estmpJ 2010
! SJK = tmpJ => Schaltdom.GetObject("SV_Jahr").Value()eskorrektur: tmpJ = 0 wenn kein Schaltdom.GetObject("SV_Jahr").Value(), sonst tmpJ = 6
! Ergebnis = (TZ + MZ + JZ + JHZ + SJK) mod 7 => 0 = So, 1 = Mo, 2 = Di, 3 = Mi, 4 = Do, 5 = Fr, 6 = Sa
! Mit dieser Rechnung kann man zu jedem Datum den Wochentag berechnen.
tmpG = tmpF.Substr(8, 2).ToInteger();
tmpJ = (tmpG + (tmpG / 4)) % 7;
tmpG = tmpF.Substr(6, 2).ToInteger();
tmpH = ((3 - (tmpG % 4)) * 2) + tmpJ;
tmpG = tmpF.Substr(6, 4).ToInteger() % 4;
if (tmpG == 0) { tmpJ = 6; } else { tmpJ = 0; }
tmpG = ((24 % 7) + 5 + tmpH + tmpJ) % 7; ! Ergebnis (tmpG) ist die WochentagstmpJ
! tmpR ermitteln: 30 Novembertage - (tmpU + WochentagstmpJ - 24)
! Der Monat ist stets der November
tmpJ = 30 - (tmpU + tmpG - 24);
tmpT = tmpJ.ToString() # ".11.";
if (tmpK == tmpT) { tmpR = 1; }
}
if (tmpL == 0) {
dom.GetObject('SV_Feiertag_heute').State(tmpR);
tmpL = 1;
! Datum von morgen für den 2. tmpL ermitteln
tmpG = system.Date("%d").ToInteger() + 1.00; ! Einen Tag weiter --> morgen
tmpW = system.Date("%m");
tmpH = tmpW.ToInteger();
tmpJ = (3 * tmpH) - 3;
tmpI = mTage.Substr(tmpJ, 2).ToInteger(); ! Anzahl der Tage im aktuellen Monat
if (tmpG > tmpI) { ! Wenn Monatsgrenze überschritten wurde
tmpK = "01.";
if (tmpH == 12) {
tmpK = tmpK # "01.";
} else {
tmpH = tmpH + 1.00;
if (tmpH < 10) { tmpK = tmpK # "0" # tmpH.ToString() # "."; } else { tmpK = tmpK # tmpH.ToString() # "."; }
}
} else {
if (tmpG < 10) { tmpK = "0" # tmpG.ToString() # "." # tmpW # ".";} else { tmpK = tmpG.ToString() # "." # tmpW # "."; }
}
} else {
dom.GetObject('SV_Feiertag_morgen').State(tmpR);
tmpL = 2;
}
}
WriteLine("Hallo Welt 2!");
Re: Feiertagsberechnung - Skript
SV_Jahr habe ich nicht. Integer? Vierstellig? Muss ich diese manuell befüllen?AndiN hat geschrieben:[edit] hast Du eine Systemvariable "SV_Jahr" im Einsatz? Die muss man für das Skript auch noch haben.
Wenn nicht, dann läuft das Skript vor den Baum und Du müssstest aber auch ein ERR im Log haben [/edit]
Edit: Gut, SV_Jahr als Zahl angelegt und mit 2016.0 gefüttert, jetzt läuft das Skript.
Darf ich noch den Hintergrund von SV_Jahr erfragen? Das Skript selbst liest doch das aktuelle Jahr aus und speichert es in eine Variable. Warum nicht damit arbeiten? Und wie befüllst du SV_Jahr?
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Feiertagsberechnung - Skript
SV Jahr befülle ich mit einem Skript, was täglich läuft. Könnte das auch direkt nutzen. Aber da ich diverse Sachen (Bsp: Wochentag) in mehreren Skripts nutze habe ich dafür einfach direkt "sprechende" System-Variablen genommen.
Code: Alles auswählen
! Jahr bestimmen
! ===========
dom.GetObject("SV_Jahr").State(system.Date("%Y").ToInteger());
! Wochentag ermitteln
! ===============
integer tmpA= system.Date("%w").ToInteger();
string tmpB = "Sonntag;Montag;Dienstag;Mittwoch;Donnerstag;Freitag;Samstag";
tmpB = tmpB.StrValueByIndex(";",tmpA);
dom.GetObject("SV_Wochentag").State(tmpB);
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Re: Feiertagsberechnung - Skript
Mach einmal im Skript ausAndiN hat geschrieben:hast Du eine Systemvariable "SV_Jahr" im Einsatz? Die muss man für das Skript auch noch haben.
Wenn nicht, dann läuft das Skript vor den Baum und Du müssstest aber auch ein ERR im Log haben
Code: Alles auswählen
tmpJ = dom.GetObject("SV_Jahr").Value() % 4;
Code: Alles auswählen
tmpJ = (system.Date("%Y")).ToInteger() % 4;
Die anderen <dom.GetObject("SV_Jahr")> müßtem natürlich auch noch umgebaut werden.
@AndiN
Du könntest mir mal eine Liste zukommen lassen, welche tmp-Variabeln Du in der Sammlung schon benutzt, dann könnte ich mein neues all-Inclusive-Kalenderskript V2.0.0, welches noch diese Woche kommen wird, Dir gleich mit tmp-Variablen zur Verfügung stellen. Das neue Skript ist noch umfangreicher und bedient über 300 Systemvariabeln zum Thema Kalender/Tagesberechnungen in einem Aufwasch.
@all
Wer noch eine Idee hat, welche Informationen zur Steuerung bei bestimmten Tage/Situationen man benötigen könnte der ist hiermit aufgerufen seine Wünsche/Träume zu äussern.
.
Re: Feiertagsberechnung - Skript
Ich habe die tmpA genommen, die oben deklariert und mit der aktuellen Jahreszahl gefüllt, aber nie benutzt wird. Also so wie im Originalskript hier, nur mit einer tmp-Variable.BadenPower hat geschrieben:Mach einmal im Skript ausAndiN hat geschrieben:hast Du eine Systemvariable "SV_Jahr" im Einsatz? Die muss man für das Skript auch noch haben.
Wenn nicht, dann läuft das Skript vor den Baum und Du müssstest aber auch ein ERR im Log habendieses hierCode: Alles auswählen
tmpJ = dom.GetObject("SV_Jahr").Value() % 4;
dann holt sich das Skript automatisch die aktuelle Jahreszahl und nicht erst umständlich über eine separat zu setzende Systemvariable.Code: Alles auswählen
tmpJ = (system.Date("%Y")).ToInteger() % 4;
Die anderen <dom.GetObject("SV_Jahr")> müßtem natürlich auch noch umgebaut werden.
Re: Feiertagsberechnung - Skript
tmpA wird im Skript benutzt und darf natürlich nicht mit dem Jahr gefüllt werden..DanielP hat geschrieben: Ich habe die tmpA genommen, die oben deklariert und mit der aktuellen Jahreszahl gefüllt, aber nie benutzt wird. Also so wie im Originalskript hier, nur mit einer tmp-Variable.
tmpA ist der Wochentag und wird 2 Zeilen darunter zur Auswertung von tmpB verwendet.
Code: Alles auswählen
integer tmpA= system.Date("%w").ToInteger();
string tmpB = "Sonntag;Montag;Dienstag;Mittwoch;Donnerstag;Freitag;Samstag";
tmpB = tmpB.StrValueByIndex(";",tmpA);
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Feiertagsberechnung - Skript
@Baden: Ich benute tmpA-tmpZ und tmpA1-tmpZ1: Also maximal 52 Variablen. Der nächste Kreis wäre dann logischerweise tmpA2-tmpZ2.
P.S. SV_Jahr und SV_Wochentag etc. werden in dem täglichen Skript (da ermittel ich dann auch Sonnenaufgang für Rollo etc.) ermittelt. Daher kommen die sich nicht in die Quere
Andi
P.S. SV_Jahr und SV_Wochentag etc. werden in dem täglichen Skript (da ermittel ich dann auch Sonnenaufgang für Rollo etc.) ermittelt. Daher kommen die sich nicht in die Quere
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links