Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Kalenderwoche abrufen / zuweisen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    940

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Kalenderwoche abrufen / zuweisen

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 254 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo, ich rufe mir die aktuelle Kalenderwoche online ab.
    Aktuell so:

    sync function getCalenderWeek(){
        // @ts-ignore
        const axios = require('axios');
        const result = await axios.get("http://kalenderwoche.celll.net?api=1");
        if(result && !result.error){
            if(result.data)
            setState(idKalenderwoche,result.data,true);
        }
        else{
            log("Fehler bei der Abfrage der Kalenderwoche","warn");
            setTimeout(getCalenderWeek,60000);
        }
    
    }
    

    Das funktioniert soweit super.
    Ich habe mich nun gefragt, ob es ioBroker intern vielleicht schon einen fertigen State für die Kalenderwoche gibt,
    oder ob ich dies so belassen kann?

    Rene55R 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, ich rufe mir die aktuelle Kalenderwoche online ab.
      Aktuell so:

      sync function getCalenderWeek(){
          // @ts-ignore
          const axios = require('axios');
          const result = await axios.get("http://kalenderwoche.celll.net?api=1");
          if(result && !result.error){
              if(result.data)
              setState(idKalenderwoche,result.data,true);
          }
          else{
              log("Fehler bei der Abfrage der Kalenderwoche","warn");
              setTimeout(getCalenderWeek,60000);
          }
      
      }
      

      Das funktioniert soweit super.
      Ich habe mich nun gefragt, ob es ioBroker intern vielleicht schon einen fertigen State für die Kalenderwoche gibt,
      oder ob ich dies so belassen kann?

      Rene55R Offline
      Rene55R Offline
      Rene55
      schrieb am zuletzt editiert von
      #2

      @ben1983 Man kann die Kalenderwoche auch offline berechnen.


      //Kalenderwochenberechnung

      const date = new Date();
      const wocheDesJahres = weekOfYear(date);

      log ('Kalenderwoche: '+ wocheDesJahres);

      //___________________________
      // Beschreibe diese Funktion: Berechnet die aktuelle Woche
      function weekOfYear(date){
      const currentThursday = new Date(date.getTime() +(3-((date.getDay()+6) % 7)) * 86400000);
      // At the beginnig or end of a year the thursday could be in another year.
      const yearOfThursday = currentThursday.getFullYear();
      // Get first Thursday of the year
      const firstThursday = new Date(new Date(yearOfThursday,0,4).getTime() +(3-((new Date(yearOfThursday,0,4).getDay()+6) % 7)) * 86400000);
      // +1 we start with week number 1
      // +0.5 an easy and dirty way to round result (in combinationen with Math.floor)
      return Math.floor(1 + 0.5 + (currentThursday.getTime() - firstThursday.getTime()) / 86400000/7);
      }

      Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
      ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
      Wetterstation: Froggit WH3000SE V1.6.6

      Ben1983B 1 Antwort Letzte Antwort
      0
      • Rene55R Rene55

        @ben1983 Man kann die Kalenderwoche auch offline berechnen.


        //Kalenderwochenberechnung

        const date = new Date();
        const wocheDesJahres = weekOfYear(date);

        log ('Kalenderwoche: '+ wocheDesJahres);

        //___________________________
        // Beschreibe diese Funktion: Berechnet die aktuelle Woche
        function weekOfYear(date){
        const currentThursday = new Date(date.getTime() +(3-((date.getDay()+6) % 7)) * 86400000);
        // At the beginnig or end of a year the thursday could be in another year.
        const yearOfThursday = currentThursday.getFullYear();
        // Get first Thursday of the year
        const firstThursday = new Date(new Date(yearOfThursday,0,4).getTime() +(3-((new Date(yearOfThursday,0,4).getDay()+6) % 7)) * 86400000);
        // +1 we start with week number 1
        // +0.5 an easy and dirty way to round result (in combinationen with Math.floor)
        return Math.floor(1 + 0.5 + (currentThursday.getTime() - firstThursday.getTime()) / 86400000/7);
        }

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von
        #3

        @rene55 Ja, anhand des Datums. schon klar.
        Aber nochmal guter Einwand, dann kann es auch keinen Fehler geben.

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • Ben1983B Ben1983

          @rene55 Ja, anhand des Datums. schon klar.
          Aber nochmal guter Einwand, dann kann es auch keinen Fehler geben.

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          @ben1983
          Alternative:

          const moment = require('moment'); 
            
          let now = new moment();
          console.log(now.isoWeek()); 
          console.log(now.format('W'));
          

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          Ben1983B 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @ben1983
            Alternative:

            const moment = require('moment'); 
              
            let now = new moment();
            console.log(now.isoWeek()); 
            console.log(now.format('W'));
            
            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von
            #5

            @codierknecht Cool, habe es jetzt so:

            // Zuweisen der Kalenderwoche
            schedule('4 0 * * *',()=>{
                // @ts-ignore
                const moment = require('moment'); 
                setState(idKalenderwoche,new moment().isoWeek(),true);
            })
            
            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            713

            Online

            32.6k

            Benutzer

            82.2k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe