Ankündigung

Einklappen
Keine Ankündigung bisher.

Feiertage berechnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Feiertage berechnen

    Hallo,

    ich versuche bei mir die Abfrage von Feiertagen und dann später deren Anzeige im EibPC abzubilden.

    Dazu möchte ich den Code im Anhang benutzen. Findet sich in älteren Forenbeiträgen.

    Dazu habe ich auch 2 Makros gefunden:
    WE_Datwert
    WE_DatwertToDate (mit UTC Funktion !)

    Was mir fehlt ist das passende Makro (ebenso im Anhang, .lib habe ich in .txt ändern müssen damit es hochgeladen werden kann):
    WE_Ostertag

    Bzw. da habe ich auch was gefunden im Archiv - das passt aber irgendwie nicht zusammen von der Anzahl der Übergabeparameter.

    Nutzt das jemand und kann mir das bitte schicken? Oder evtl. eine ganz andere Lösung. Ich möchte die Feiertage in der Visu darstellen als Kontrolle. Das bekomme ich alleine hin - immerhin.

    Ich habe einen EibPC mit EibStudio 3.203. Traue mich noch nicht auf Version 4 abzudaten.

    Vielen Dank

    Ralf






    Angehängte Dateien

    #2
    Hat doch schon lang ne fest eingebaute Funktion, um den Ostersonntag zu berechnen, ganz ohne Makro. Rest ist dann ja nur noch simples plus und minus.
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #3
      Hallo zusammen,

      @Ralf74: die Makros stammen von mir ...
      @Uwe: ich habe es auch - ganz motiviert - mit der integrierten Ostertagsberechnung versucht: funktioniert aber bei mir noch nicht richtig ????.
      Hat die Berechnung jemand am laufen - dannn suche ich den Fehler bei mir ..

      Gruss

      Wolfgang
      ETS 6.2 EibPC V3.x

      Kommentar


        #4
        Zitat von wetronic Beitrag anzeigen
        Hat die Berechnung jemand am laufen
        ja, seit Jahren erfolgreich.
        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

        Kommentar


          #5
          Ok, dann schaue ich bei mir nach !
          ETS 6.2 EibPC V3.x

          Kommentar


            #6
            Hallo Wolfgang,

            funktioniert bei mir jetzt auch.

            Ich bin kein Programmierer und was ich da so mache ist sicher umständlich und eher abenteuerlich und ich brauche gefühlt immer 10 Anläufe bis das passiert was ich mir so dachte. Für den Karfreitag mache ich das jetzt so.

            c_dummy1 = convert(easterday(-2s16),DATE_STRING);
            c_dummy2 = convert(eastermonth(-2s16),DATE_STRING);
            c_Karfreitag_tag = c_Nullen(c_dummy1);
            c_Karfreitag_monat = c_Nullen(c_dummy2);
            c_KarfreitagDate = convert(c_Karfreitag_tag,DATE_STRING)+$.$+convert( c_Karfreitag_monat,DATE_STRING)+$.$+convert(c_KalJ ahr,DATE_STRING);


            c_Nullen schreibt mir bei Monat und Tag jeweils noch eine Null davor, also aus 1.1. macht er dann 01.01.

            Dann vergleiche ich die jeweiligen Feiertage (c_KarfreitagDate) mit DATE_STRING und setze c_feiertag. Im debugger konnte ich DATE_STRING einfach ändern und so jeden Feiertag einfach testen. Bei mir sind es nur die gesetzlichen Feiertage für NRW.
            Dann lasse ich mir alle noch übersichtlich darstellen (wie bei dir). Und wenn der Feiertag ist, wird er rot markiert und auf meiner Hauptseite steht dann noch Feiertag darunter. Dann sehe ich, ob es doch mal wieder nicht so clever war, wie ich dachte und das es falsch ist. Screenshots angehangen. Ich darf besser nicht darüber nachdenken: mein Zeitaufwand und Nutzen :-) Egal,macht ja Spass und der Weg ist das Ziel.

            Gruß Ralf

            You do not have permission to view this gallery.
            This gallery has 3 photos.

            Kommentar


              #7
              Ein alter Thread ... aber mich beschäftigt auch gerade die Frage mit den Feiertagen.
              Im Gegensatz zu den Lösungen oben reicht mir ein boolsches Flag, ob gerade ein besonderer Tag ist, um entsprechende Zeitschaltuhren wie am Wochenende zu fahren (Wecker, Rollos, Heizung, ...).

              So habe ich nun diesen recht simplen Code eingebaut. Scheint zu funktionieren.
              Aber ich stelle mir die Frage, ob die vielen easter-Aufrufe den eibPC stark belasten?

              Code:
              varTagIstFeiertag   = AUS;
              if htime(23,59,50) or systemstart() then varTagIstFeiertag = AUS endif;
              if month(1,1)   then varTagIstFeiertag = EIN endif; // Neujahr
              if month(1,5)   then varTagIstFeiertag = EIN endif; // Tag der Arbeit / Maifeiertag
              if month(3,10)  then varTagIstFeiertag = EIN endif; // Tag der deutschen Einheit
              if month(1,11)  then varTagIstFeiertag = EIN endif; // Allerheiligen
              if month(24,12) then varTagIstFeiertag = EIN endif; // Heiligabend
              if month(25,12) then varTagIstFeiertag = EIN endif; // 1. Weihnachtstag
              if month(26,12) then varTagIstFeiertag = EIN endif; // 2. Weihnachtstag
              if month(31,12) then varTagIstFeiertag = EIN endif; // Sylvester
              if month(easterday(-48s16), eastermonth(-48s16)) then varTagIstFeiertag = EIN endif; // Rosenmontag
              if month(easterday(-2s16),  eastermonth(-2s16))  then varTagIstFeiertag = EIN endif; // Karfreitag
              if month(easterday(1s16),   eastermonth(1s16))   then varTagIstFeiertag = EIN endif; // Ostermontag
              if month(easterday(39s16),  eastermonth(39s16))  then varTagIstFeiertag = EIN endif; // Christi Himmelfahrt
              if month(easterday(50s16),  eastermonth(50s16))  then varTagIstFeiertag = EIN endif; // Pfingstmontag
              if month(easterday(60s16),  eastermonth(60s16))  then varTagIstFeiertag = EIN endif; // Fronleichnam
              ​
              // Tages-Art - für diverse Zeit-Automatiken
              varTagIstFerien     = AUS; // Kann per Visu aktiviert werden
              varTagIstWochenende = dayofweek()==SAMSTAG or dayofweek()==SONNTAG;
              varTagIstFrei       = varTagIstFeiertag or varTagIstFerien or varTagIstWochenende;

              Kommentar


                #8
                Nein, die Belastung ist sicher sehr gering.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Danke für die Rückmeldung!

                  Kommentar


                    #10
                    Ich habe für mich auch mal eine Makrobibliothek mit hilfreichen Funktionen für Feier- und Geburtstage erstellt, die noch auf die Einbindung im EibStudio wartet. Evtl kann schon jmd. was davon brauchen.

                    Die Idee ist, für gestern, heute und morgen entscheiden zu können, ob eine bestimmte Art von Feiertag ist. Lässt sich natürlich auch für Müllabfuhr oder so verwenden.

                    EnertexHolidays.txt als Makrobibliothek einfügen und Feiertage.txt ist ein Beispielprogramm.





                    Angehängte Dateien

                    Kommentar


                      #11
                      Ich habe meine Visu mit dem Editor erstellt. Kann ich diese, im Expertenmodus programmierten Teile, hinzufügen? Weil einen Schalter oder eine Element mit einer Logik verbinden habe ich geschafft, mit dem Expertenmodus hab ich soetwas noch nicht getestet.
                      Wird hier ein eigenes Blatt angelegt?

                      Kommentar


                        #12
                        Du kannst beliebig mischen. Das EibStudio generiert aus allem (Logig, Visu, Expertenprogramme mit Makros) ein einziges Programm. Deshalb kannst du zB keine Variablen im Experten und in der Logik mit gleichem Namen anlegen, sehr wohl aber auf die gleiche Variable zugriefen.

                        Für den Zugriff auf Visu-Elemente im Experten schau dir mal im Handbuch S.20 an.
                        https://enertex.de/downloads/1159/1159-HB_EibPC2_DE.pdf

                        Kommentar

                        Lädt...
                        X