Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Alter berechnen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alter berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @David G. last edited by

      @david-g sagte in Alter berechnen:

      Kann man years usw auch in deutsch machen? Ggf in den Settings einstellbar

      Richtig, ist bereits in den Settings des Adapters konfigurierbar.

      David G. 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @David G. last edited by OliverIO

        @david-g sagte in Alter berechnen:

        Das Jahr ändert sich ja auch regelmäßig

        ah ja, vergessen zu erwähnen. über die eingabe eines befehls in einem datenpunkt kann man den countdown timer direkt auf ein zieldatum setzen, dann berechnet er alles selber

        einfach das datum als iso-datum angeben
        https://github.com/oweitman/ioBroker.mytime#available-commands-for-the-cmd-datapoint

        also workflow ist,
        in den einstellungen irgeneinen neuen timer anlegen. dadurch werden die datenpunkte angelegt. dann im objektbaum in den datenpunkt cmd deines timers dann bspw

        #2000-02-01T10:00:00
        

        für das Datum nach deutscher schreibweise
        1.2.2000, 10 Uhr

        eingeben

        1 Reply Last reply Reply Quote 0
        • David G.
          David G. @haus-automatisierung last edited by David G.

          @haus-automatisierung sagte in Alter berechnen:

          @david-g sagte in Alter berechnen:

          Kann man years usw auch in deutsch machen? Ggf in den Settings einstellbar

          Richtig, ist bereits in den Settings des Adapters konfigurierbar.

          Oh, Augen auf .........
          Der Countdown im Adapter wäre schon was feines.

          @oliverio sagte in Alter berechnen:

          @david-g sagte in Alter berechnen:

          Das Jahr ändert sich ja auch regelmäßig

          ah ja, vergessen zu erwähnen. über die eingabe eines befehls in einem datenpunkt kann man den countdown timer direkt auf ein zieldatum setzen, dann berechnet er alles selber

          einfach das datum als iso-datum angeben
          https://github.com/oweitman/ioBroker.mytime#available-commands-for-the-cmd-datapoint

          also workflow ist,
          in den einstellungen irgeneinen neuen timer anlegen. dadurch werden die datenpunkte angelegt. dann im objektbaum in den datenpunkt cmd deines timers dann bspw

          #2000-02-01T10:00:00
          

          für das Datum nach deutscher schreibweise
          1.2.2000, 10 Uhr

          eingeben

          Hm, irgendwie bekomme ich immer einen weißen Einstellungsbildschirm, wenn ich ein Datum bei den Timern eingeben möchte. Egal ob von Hand oder dem Kalender.

          Animation.gif

          Wenn ich es denn dann schaffe, müsste ich also für jeden Geb ein Skript schreiben was am Tag vom Geb den Timer neu setzt?

          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @David G. last edited by OliverIO

            @david-g

            nein nicht ganz

            1. mytime adapter konfiguration öffnen
            2. countdown tab wählen (nicht time series, das ist eine andere funktionalität)
            3. einen neuen timer anlegen, name bspw "abc", zeitdaten sind egal, einfach anlegen
            4. dann adapter einstellungen speichern und schließen
            5. dann den iobroker objeke/tab öffnen
            6. dort den Ast mytime.0 suchen und erweitern
            7. darunter müsste dann ein knotenpunkt mit dem namen "abc" auftauchen
            8. auch den erweitern
            9. darunter findest du nun den datenpunkt mit dem namen "cmd"
            10. dort reinklicken, ein eingabefenster öffnet sich
            11. dort den folgenden befehl eingeben -> nächste Zeile
              #2025-01-01T10:00:00
            12. eingabefenster bestätigen und speichern
            13. nochmal in cmd klicken und folgendes eingeben
              start
            14. eingabefenster bestätigen und speichern
            15. vis öffnen
            16. in das widget suchfenster mytime eingeben
            17. dann daswidget mytime countdown plain auswählen und in den viewbereich ziehen mit dragNdrop
            18. in der widget einstellung bei countdown_oid den timerdatenpunkt auswählen. also bspw
              mytime.0.countdown.abc.timer
            19. dann müsste der countdown bis zum eingegebenen termin angezeigt und direkt runtergezählt werden
            1 Reply Last reply Reply Quote 0
            • sten-tor
              sten-tor @David G. last edited by

              @david-g sagte in Alter berechnen:

              Beim Skript komme ich jedoch auf 21 Tage.

              ...was meines Erachtens auch stimmt. Vom 16.6. bis 16.7. ist es 1 Monat. Und dann muss dein Sohnemann noch 21 Tage auf seinen Geburtstag warten. Geh das gern mal auf einem Kalender durch. Oder auch hier nachzuvollziehen: https://www.timeanddate.de/datum/zeitspanne-ergebnis?d1=16&m1=6&y1=2023&d2=06&m2=08&y2=2023

              David G. 1 Reply Last reply Reply Quote 0
              • sten-tor
                sten-tor @David G. last edited by

                @david-g sagte in Alter berechnen:

                Hat jemand eine Idee woran das liegt?

                Zu deinem alten Post vom letzten Jahr: Da hast du bestimmt einen Dreher in deinem Funktionsaufruf drin. Denn in meiner Originalversion stimmts:
                IMG_20230617_002404.jpg

                1 Reply Last reply Reply Quote 0
                • David G.
                  David G. @sten-tor last edited by David G.

                  @sten-tor

                  Habe ich hier dann einen Fehler für die anzuzeigenden Tage (Den Monat habe ich nicht gezahlt, eben 1 Monat)?

                  Datum.           Tage verbleibend 
                  
                  06.08.2023	0 Geburtstag 
                  05.08.2023	1
                  04.08.2023	2
                  03.08.2023	3
                  02.08.2023	4
                  01.08.2023	5
                  31.07.2023	
                  30.07.2023	
                  29.07.2023	
                  28.07.2023	
                  27.07.2023	
                  26.07.2023	
                  25.07.2023	
                  24.07.2023	
                  23.07.2023	
                  22.07.2023	
                  21.07.2023	
                  20.07.2023	
                  19.07.2023	
                  18.07.2023	
                  17.07.2023	
                  16.07.2023	
                  15.07.2023	
                  14.07.2023	
                  13.07.2023	
                  12.07.2023	
                  11.07.2023	
                  10.07.2023	
                  09.07.2023	
                  08.07.2023	
                  07.07.2023	
                  06.07.2023	
                  05.07.2023	
                  04.07.2023	
                  03.07.2023	
                  02.07.2023	
                  01.07.2023	
                  30.06.2023	6
                  29.06.2023	7
                  28.06.2023	8
                  27.06.2023	9
                  26.06.2023	10
                  25.06.2023	11
                  24.06.2023	12
                  23.06.2023	13
                  22.06.2023	14
                  21.06.2023	15
                  20.06.2023	16
                  19.06.2023	17
                  18.06.2023	18
                  17.06.2023	19
                  16.06.2023	20
                  

                  @sten-tor sagte in Alter berechnen:

                  @david-g sagte in Alter berechnen:

                  Hat jemand eine Idee woran das liegt?

                  Zu deinem alten Post vom letzten Jahr: Da hast du bestimmt einen Dreher in deinem Funktionsaufruf drin. Denn in meiner Originalversion stimmts:
                  IMG_20230617_002404.jpg

                  Beim Alter kommt es hin, aber nicht bei der Zeit von heute bis zum Geburtstag.

                  1 Reply Last reply Reply Quote 0
                  • sten-tor
                    sten-tor last edited by

                    @david-g sagte in Alter berechnen:

                    @sten-tor
                    Habe ich hier dann einen Fehler für die anzuzeigenden Tage (Den Monat habe ich nicht gezahlt, eben 1 Monat)?

                    Üblicherweise wird von der größten Einheit zur kleinsten gerechnet und alle Einheiten abgerundet und nur die kleinste Einheit aufgerundet.
                    Du müsstest mit Monaten anfangen und dann schauen, wie viel Tage noch übrig bleiben. Also: 16.6. + 1 Monat = 16.7.
                    ...und dann von diesem Datum aus die verbleibenden Tage zählen: 21.
                    Da Tage die kleinste Einheit ist, wird aufgerundet, so dass z.B. am 5.8. 23:00 immer noch "1 Tag" herauskommt.

                    David G. 1 Reply Last reply Reply Quote 0
                    • David G.
                      David G. @sten-tor last edited by

                      @sten-tor

                      In meinem Beispiel habe ich ja am 5.8 noch 1 Tag da stehen. Wenn ich das durchzähle und den ganzen Monat weg lasse komme ich am 16.6 auf genau 20 Tage.

                      Ich denke das stimmt auch.

                      Der Countdown Adapter sieht es auch wie ich. Der zeigt mit jetzt einen Tag später 18 Tage und 12h an (die 18, da nicht wie du auch gesagt hast aufgerundet wird weil die h noch kommen).

                      OliverIO sten-tor 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @David G. last edited by

                        @david-g
                        Ich habe bei mir auf die Berechnung der Jahre und Monate verzichtet, da es einiges an Aufwand benötigt, diese richtig zu berechnen.

                        1 Reply Last reply Reply Quote 0
                        • sten-tor
                          sten-tor @David G. last edited by

                          @david-g Vielleicht kann ich dich damit überzeugen:

                          Wenn heute der 16.06.2023 ist, dann beträgt die...

                          ...Dauer bis zum 16.06.2023: 0 Monate und 0 Tage
                          ...Dauer bis zum 17.06.2023: 0 Monate und 1 Tag
                          ...Dauer bis zum 18.06.2023: 0 Monate und 2 Tage
                          ...Dauer bis zum 19.06.2023: 0 Monate und 3 Tage
                          ...Dauer bis zum 20.06.2023: 0 Monate und 4 Tage
                          ...Dauer bis zum 21.06.2023: 0 Monate und 5 Tage
                          ...Dauer bis zum 22.06.2023: 0 Monate und 6 Tage
                          ...Dauer bis zum 23.06.2023: 0 Monate und 7 Tage
                          ...Dauer bis zum 24.06.2023: 0 Monate und 8 Tage
                          ...Dauer bis zum 25.06.2023: 0 Monate und 9 Tage
                          ...Dauer bis zum 26.06.2023: 0 Monate und 10 Tage
                          ...Dauer bis zum 27.06.2023: 0 Monate und 11 Tage
                          ...Dauer bis zum 28.06.2023: 0 Monate und 12 Tage
                          ...Dauer bis zum 29.06.2023: 0 Monate und 13 Tage
                          ...Dauer bis zum 30.06.2023: 0 Monate und 14 Tage
                          ...Dauer bis zum 01.07.2023: 0 Monate und 15 Tage
                          ...Dauer bis zum 02.07.2023: 0 Monate und 16 Tage
                          ...Dauer bis zum 03.07.2023: 0 Monate und 17 Tage
                          ...Dauer bis zum 04.07.2023: 0 Monate und 18 Tage
                          ...Dauer bis zum 05.07.2023: 0 Monate und 19 Tage
                          ...Dauer bis zum 06.07.2023: 0 Monate und 20 Tage
                          ...Dauer bis zum 07.07.2023: 0 Monate und 21 Tage
                          ...Dauer bis zum 08.07.2023: 0 Monate und 22 Tage
                          ...Dauer bis zum 09.07.2023: 0 Monate und 23 Tage
                          ...Dauer bis zum 10.07.2023: 0 Monate und 24 Tage
                          ...Dauer bis zum 11.07.2023: 0 Monate und 25 Tage
                          ...Dauer bis zum 12.07.2023: 0 Monate und 26 Tage
                          ...Dauer bis zum 13.07.2023: 0 Monate und 27 Tage
                          ...Dauer bis zum 14.07.2023: 0 Monate und 28 Tage
                          ...Dauer bis zum 15.07.2023: 0 Monate und 29 Tage
                          ...Dauer bis zum 16.07.2023: 1 Monat und 0 Tage
                          ...Dauer bis zum 17.07.2023: 1 Monat und 1 Tag
                          ...Dauer bis zum 18.07.2023: 1 Monat und 2 Tage
                          ...Dauer bis zum 19.07.2023: 1 Monat und 3 Tage
                          ...Dauer bis zum 20.07.2023: 1 Monat und 4 Tage
                          ...Dauer bis zum 21.07.2023: 1 Monat und 5 Tage
                          ...Dauer bis zum 22.07.2023: 1 Monat und 6 Tage
                          ...Dauer bis zum 23.07.2023: 1 Monat und 7 Tage
                          ...Dauer bis zum 24.07.2023: 1 Monat und 8 Tage
                          ...Dauer bis zum 25.07.2023: 1 Monat und 9 Tage
                          ...Dauer bis zum 26.07.2023: 1 Monat und 10 Tage
                          ...Dauer bis zum 27.07.2023: 1 Monat und 11 Tage
                          ...Dauer bis zum 28.07.2023: 1 Monat und 12 Tage
                          ...Dauer bis zum 29.07.2023: 1 Monat und 13 Tage
                          ...Dauer bis zum 30.07.2023: 1 Monat und 14 Tage
                          ...Dauer bis zum 31.07.2023: 1 Monat und 15 Tage
                          ...Dauer bis zum 01.08.2023: 1 Monat und 16 Tage
                          ...Dauer bis zum 02.08.2023: 1 Monat und 17 Tage
                          ...Dauer bis zum 03.08.2023: 1 Monat und 18 Tage
                          ...Dauer bis zum 04.08.2023: 1 Monat und 19 Tage
                          ...Dauer bis zum 05.08.2023: 1 Monat und 20 Tage
                          ...Dauer bis zum 06.08.2023: 1 Monat und 21 Tage

                          1 Reply Last reply Reply Quote 0
                          • David G.
                            David G. last edited by

                            @sten-tor

                            Wenn man deins liest, klingt es auch plausibel.
                            Wenn ich meins lese aber genau so.

                            Was jetzt stimmt.... Keine Ahnung 🤣

                            Mich würde interessieren, was @jackblackson zu meint. Sein Adapter kommt meiner Rechnung nach. Das hier entwickelte Skript deiner Rechnung.

                            jackblackson 1 Reply Last reply Reply Quote 0
                            • jackblackson
                              jackblackson @David G. last edited by

                              @david-g Ich hab es mir grad angesehen, und bin zu diesem Ergebnis gekommen (am 20.Juni um 20:14:)23f7c913-db81-489f-adf3-6cf1f39f49d8-image.png

                              Und hätte jetzt eher gesagt, das es am 20.7. ein Monat und 1 Stunde sein sollte, und nicht am 21.7...

                              1 Reply Last reply Reply Quote 0
                              • jackblackson
                                jackblackson last edited by

                                Ich habe mich noch etwas länger damit beschäftigt, und bei meinem Adapter auch eine Verbesserung eingebaut - es geht nun ganz auf die Logik der Datumsberechnung von Moment.

                                Wo es jedoch schwierig werden kann ist am Monatsende - wenn man wie heute am 30. ist, der nächste Monat jedoch 31 Tage hat, oder umgekehrt. Hier ist für Moment der letzte des Monats ausschlaggebend - sprich vom 30. Juni auf den 30. Juli ist es 1 Monat, und vom 30. Juni auf den 31. Juli ist es einen Monat. Damit muss man vermutlich leben. Generell ist natürlich die Frage, was definiert einen Monat - der selbe Kalendertag?

                                Ich habe das mal ausprobiert (Stichpunkt 30.6., 12:00):
                                5b9d2657-b011-435b-a4e0-166b9b850e69-image.png
                                Die Korrektur zum obigen Post werde ich bald freigeben, in Version 2.0.2 des Countdown Adapters.

                                OliverIO 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @jackblackson last edited by OliverIO

                                  @jackblackson

                                  wie ich ja oben schon geschrieben habe, ist die berechnung nicht so einfach.
                                  auch bekannte, viel verwendete bibliotheken haben/hatten probleme
                                  https://github.com/moment/moment/pull/571

                                  dennoch, um nicht alle lernprozesse nochmal neu durchzumachen, würd ich da nur eine etablierte bibliothek nehmen um so eine berechnung durchzuführen.
                                  vorteil von node/javascript ist ja, das man auf wirklich viel verschiedene bibliotheken zurückgreifen kann
                                  https://www.npmjs.com/package/moment (20 Mio wöchentliche downloads)
                                  https://www.npmjs.com/package/luxon (~6 Mio wöchentliche downloads, ist sozusagen der nachfolger von moment)

                                  und dann wird da mal noch Temporal kommen. Das neue Top-level object in javascript, in dem vieles behoben wird, was im Date object schrott ist.
                                  aber ist erst in der proposal phase von javascript
                                  https://tc39.es/proposal-temporal/docs/index.html

                                  timrwood created this issue in moment/moment

                                  closed Fix month and year diffs #571

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  785
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  10
                                  57
                                  4060
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo