NEWS
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:
-
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:
Beim Alter kommt es hin, aber nicht bei der Zeit von heute bis zum Geburtstag.
-
@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. -
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).
-
@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. -
@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 -
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.
-
@david-g Ich hab es mir grad angesehen, und bin zu diesem Ergebnis gekommen (am 20.Juni um 20:14:)
Und hätte jetzt eher gesagt, das es am 20.7. ein Monat und 1 Stunde sein sollte, und nicht am 21.7...
-
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):
Die Korrektur zum obigen Post werde ich bald freigeben, in Version 2.0.2 des Countdown Adapters. -
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/571dennoch, 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